Skip to content

Blog su Lazarus e il Pascal

Scrivi una volta e compila dove vuoi…

Code templates

Posted on 25 Gennaio 2022 By nomorelogic

Generalità

Code templates (Modelli di Codice, ndt) è una funzionalità dell’IDE di Lazarus che permette l’inserimento veloce di brani di codice all’interno del sorgente che state scrivendo, permettendovi di risparmiare una notevole quantità di tempo (e di tasti da premere sulla tastiera).

I modelli di codice possono essere di qualsiasi lunghezza, possiamo aggiungerne di nostri e possiamo modificarli in qualsiasi momento per adattare alle nostre esigenze sia il contenuto che semplicemente la formattazione. Attualmente sono presenti circa 30 modelli e, già tra questi, ne troviamo alcuni utilissimi.

Un determinato code template ha un determinato nome, ad esempio “tryf” (per “try-finally-end”) o “ifeb” (per “if then begin end else begin”) e l’inserimento del codice corrispondente avviene tramite la pressione della combinazione di tasti Ctrl+J.

Preciso fin da ora che questo articolo non coprirà interamente l’argomento ma si limiterà agli aspetti utili ad un utilizzo immediato.

Esempi di template

Come anticipato sopra, i template che abbiamo a disposizione sono circa 30, ne vedremo alcuni. Per chi non li avesse mai usati, iniziamo con il più semplice ma che già ci fa capire cosa possiamo ottenere. Creiamo un nuovo progetto con Lazarus, mettiamo un bottone sul Form del progetto e, con il doppio click, andiamo a editare il codice del metodo

Dovremmo trovarci in questa situazione:

procedure TForm1.Button1Click(Sender: TObject); 
begin
  |
end;

Code template: w – “writeln”

A questo punto digitiamo una “w” e poi, Ctrl+J; otterremo il seguente risultato:

procedure TForm1.Button1Click(Sender: TObject);
begin
  writeln('TForm1.Button1Click ');
end;

Come abbiamo visto, è comparsa una completa invocazione a Writeln, ma non solo: nella stringa che dovrà essere stampata, c’è il nome del metodo!
Questo perché nei code templates sono state implementate anche le macro che possono essere sfruttate nel brano di codice da inserire.
Già quì si aprono diverse possibilità: chi non usa dei logger nei quali si scrive il nome della procedura che è attualmente in esecuzione?

Code template: ifeb – “if then else”

A volte, scrivendo codice velocemente, ci dimentichiamo che spesso finiremo per nidificare le if/then e quindi non mettiamo i blocchi begin/end.
Puntualmente finiremo per nidificare le if e puntualmente dovremo rivedere tutti i begin/end.

Quindi proviamo la combinazione: ifeb e poi Ctrl+J.

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Conditional then
  begin

  end
  else begin

  end;
end;

Il cursore è già posizionato su “conditional”, dove andremo a mettere la nostra condizione.
Non riporterò qui il risultato poiché è facilmente immaginabile, ma vi invito a posizionarvi tra la prima coppia di begin/end e digitare nuovamente iefb seguito da Ctrl+J.

Code template: trycf – “try finally (with create/free)

Ultimo template che vedremo il trycf, utile perché lo utilizzeremo insieme ad un’altra caratteristica dell’IDE di Lazarus: il refactoring.
Digitate quindi trycf seguito da Ctrl+J; dovreste trovarvi in questa condizione:

procedure TForm1.Button1Click(Sender: TObject);
begin
   VarName := TMyClassName.Create;
   try

   finally
     VarName.Free;
   end;
end;

Sarete posizionati su “VarName”, ora mettere un nome di variabile tipo “a” e poi con TAB spostatevi su “TmyClassName” e mettete TStringList.
Dovreste trovarvi in questa situazione:

procedure TForm1.Button1Click(Sender: TObject);
begin
   a := TStringList.Create;
   try

   finally
     a.Free;
   end;
end;

A questo punto fate un’ultima operazione:

  • Click col tasto destro del mouse sulla variabile “a”
  • dal menù contestuale: Refactoring → Dichiara Variabile
  • scegliete ora: Local Variable of Tform1.Button1Click

ed avrete:

procedure TForm1.Button1Click(Sender: TObject);
var
  a: TStringList;
begin
   a := TStringList.Create;
   try

   finally
     a.Free;
   end;
end;

Mica male no?

Creare un code template

Proviamo ora a creare un template personalizzato.
A volte capita di dover scrivere dei cicli for dove l’iterazione sia incapsulata in un blocco try/except; questo per evitare che un errore in un ciclo del loop interrompa il tutto.
Creiamo quindi il nostro template.
Da menù: Strumenti → Template di codice → Aggiungi

Inseriamo:

  • Token: forx
  • Commento: for … try except

Nel memo dedicato al contenuto del template inseriamo:

for $Param(CounterVar) := $Param(0) to Pred($Param(Count)) do
begin
  try
  | 
  except
    on e: exception do begin
      writeln('$ProcedureName() '|)$AddSemicolon()
    end$AddSemicolon()
  end$AddSemicolon()  
end$AddSemicolon()    

Spuntate ora i campi campi:

  • Abilita le macro
  • non aggiungere caratteri

Confermate il dialog.

Dovreste vedere a video qualcosa del genere:

Ora non vi resta che provare: forx seguito da Ctrl+J.

Conclusioni

Come già accennato l’argomento non si esaurisce qui, ma ci sono altri aspetti che rendono ancora più interessante questa funzionalità.
Il consiglio è di dedicare un po’ di tempo a vedere tutti i template a disposizione, a vedere cosa si può fare con essi e ad imparare ad usarli.
Nel caso ci fosse interesse a conoscere più approfonditamente l’argomento, potete aprire un thread nel forum https://www.lazaruspascal.it/.

Buon lavoro.

Lazarus, l'IDE ed i suoi strumenti

Navigazione articoli

Previous Post: Costanti e variabili
Next Post: Lazarus e android (primi passi)

Archivi

  • Maggio 2025
  • Aprile 2025
  • Ottobre 2024
  • Maggio 2024
  • Marzo 2024
  • Dicembre 2023
  • Novembre 2023
  • Settembre 2023
  • Giugno 2023
  • Maggio 2023
  • Marzo 2023
  • Maggio 2022
  • Aprile 2022
  • Febbraio 2022
  • Gennaio 2022
  • Dicembre 2021

Categorie

  • Android
  • Funzioni avanzate
  • Installazione alternativa di Lazarus e Free Pascal Compiler (FPC)
  • Installazioni
  • Lazarus ed il Web
  • Lazarus, l'IDE ed i suoi strumenti
  • Sintassi e concetti base
  • Strutture dati
  • Tutorial
Vai al forum Italiano

Articoli recenti

  • Il framework Brook – tutorial 2 – un server CRUD
  • Il framework Brook – tutorial 1 – primi passi
  • Installazione di Lazarus in Linux – Risoluzione problemi
  • Autenticazione 2FA
  • Installazione di Free Pascal e Lazarus su Manjaro Linux

Commenti recenti

  1. DragoRosso su Installazione di Lazarus e Free Pascal – su Linux – tramite package manager a linea di comando

Copyright © 2025 Blog su Lazarus e il Pascal.

Powered by PressBook WordPress theme

Utilizziamo i cookie per essere sicuri che tu possa avere la migliore esperienza sul nostro sito. Se continui ad utilizzare questo sito noi assumiamo che tu ne sia felice.Ok