Sign in Join
Wiki copytemporary

IDE Window: Code Templates/de: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## Was sind Code-Schablonen?
22
33Code-Schablonen sind Texte mit einem Kurzzeichen. Zum Beispiel: Sie können im Quelltext-Editor 'cl' tippen und dann Strg+J tippen, um die Code-Schablonen aufzurufen, die mit 'cl' beginnen. Dieses Feature ist ein großer Zeitsparer.
44
55Dieser Dialog erlaubt Ihnen, existierende Schablonen zu bearbeiten oder eigene hinzuzufügen und ist zu finden unter Werkzeuge -\> Vorlagen
66
77Die Texte können Makros enthalten. Und Sie können ihre eigenen Makros hinzufügen durch Erstellen eines Entwicklungszeit-Packages und Verwendung der macrointf.pas aus dem IDEIntf Package.
88
99## Beispiel 1 - ifb
1010
1111Tippen Sie
1212
1313 ifb|
1414
1515wobei der senkrechte Strich den Cursor darstellt und drücken anschließend Strg+J, so wird der geschriebene Text verändert zu
1616
1717 if | then begin
1818
1919 end;
2020
2121wobei auch hier wieder der \| nicht da steht, sondern nur andeutet, wo der Cursor steht, so dass Sie sofort die Bedingung eingeben können.
2222
2323Diese Schablone wird 'ifb' genannt und ist wie folgt definiert:
2424
2525 if | then begin
2626
2727 end;
2828
2929Hierbei gibt der geschriebene Strich '\|' an, wo der Cursor nach Ersetzung steht. (Tatsächlich ist in den Werkzeugen ifb anders definiert, nämlich mit einem Macro, aber das wird erst im nächsten Beispiel erklärt)
3030
3131## Beispiel 2 - Verwendung von Makros
3232
3333Dieses Beispiel zeigt, wie die aktuelle Code-Schablone 'ifb' erzeugt wurde.
3434
3535Wählen Sie die Code-Schablone, so steht dort
3636
37-` ifb - if statement`
37+```text
38+ ifb - if statement
39+```
3840
3941und im unteren Fenster steht
4042
41-` if $Param(Conditional) then`\
42-` begin`\
43-`   |`\
44-` end$$AddSemicolon()    `
43+``` pascal
44+ if $Param(Conditional) then
45+ begin
46+ |
47+ end$$AddSemicolon()
48+```
4549
4650Zusätzlich ist "Makros einschalten" angekreuzt.
4751
4852\$Param(Conditional) ist das Macro Param, dem Sie Komma separierte Argumente mitgeben können. In unserem Beispiel ist nur ein Parameter, nämlich Conditional angegeben worden.
4953
5054Rufen Sie nun ifb mit Strg+J auf, so erscheint der Text
5155
52-` if <Conditional> then`\
53-` begin`\
54-`   |`\
55-` end;    `
56+``` pascal
57+ if <Conditional> then
58+ begin
59+ |
60+ end;
61+```
5662
5763und der Cursor steht auf dem markierten Wort Conditional. Hier können Sie nun die Bedingung eingeben. Mit Tab springt der Cursor anschließend auf das '\|' nach begin, um die entsprechenden Anweisungen einzugeben.
5864
5965## Beispiel 3 - Weiteres Beispiel zur Verwendung von Makros
6066
6167Dieses Beispiel zeigt, wie man eine Code-Schablone 'w' erzeugt, die eine Zeile mit dem aktuellen Prozedur-Namen einfügt, was Zeitersparnis bedeutet und Tippfehler vermeidet.
6268
6369- Klicken Sie auf die 'Hinzufügen' Schaltfläche. Ein Dialog erscheint. Setzen Sie Token auf 'w' und Kommentar auf 'writeln(ProcName)', dann klicken Sie auf Hinzufügen.
6470- Ihr neuer Eintrag wurde zur Listbox hinzugefügt.
6571- In dem Feld darunter tragen Sie ein
6672
67-` writeln(' ',|);`
73+```text
74+ writeln(' ',|);
75+```
6876
6977- Der Strich ist wirklich ein Strich und definiert die neue Cursorposition. Jetzt platzieren Sie den Cursor nach dem ersten ' und klicken auf die 'Insert macro' Schaltfläche. Ein Dialog erscheint, der alle verfügbaren Code Makros zeigt. Wählen Sie 'ProcedureName' und klicken auf 'Insert Macro'. Sie sollten jetzt haben:
7078
71-` writeln('$ProcedureName() ',|);`
79+```text
80+ writeln('$ProcedureName() ',|);
81+```
7282
7383- Klicken Sie auf 'OK' zum Speichern und Beenden des Code-Schablone Dialogs.
7484- Bewegen Sie den Cursor in einen Methodenrumpf und tippen 'w':
7585
7686Zum Beispiel:
7787
78-` procedure TForm1.FormDestroy(Sender: TObject);`\
79-` begin`\
80-`   w|`\
81-` end;`
88+``` pascal
89+ procedure TForm1.FormDestroy(Sender: TObject);
90+ begin
91+ w|
92+ end;
93+```
8294
8395Der Strich stellt hier den blinkenden Cursor dar, nicht ein Zeichen.
8496
8597- Drücken Sie Strg+J. Sie erhalten:
8698
87-` procedure TForm1.FormDestroy(Sender: TObject);`\
88-` begin`\
89-`   writeln('TForm1.FormDestroy ',|);`\
90-` end;`
99+``` pascal
100+ procedure TForm1.FormDestroy(Sender: TObject);
101+ begin
102+ writeln('TForm1.FormDestroy ',|);
103+ end;
104+```
91105
92106## Template Autocompletion
93107
94108Code-Schablonen werden aufgerufen, entweder durch Strg+J oder automatisch (wenn man das so einstellt) nach bestimmten Ereignissen. Für jede Schablone kann man (wenn überhaupt) dieses Ereignis festlegen, das automatisch ausgeführt wird. Folgende Ereignisse (oder gar keines davon) kann man auswählen:
95109
96110- **Zeilenende** - immer dann, wenn der Benutzer \[Return\] oder \[Enter\] drückt
97111- **Leerzeichen** - wenn der Benutzer die Leertaste drückt.
98112- **Wortende** - wenn der Benutzer ein Wortende-Zeichen (auch ';', z. B. 'b;') benutzt
99113- **Zeichen nicht hinzufügen** - kann mit allen vorgenannten kombiniert werden und bedeutet, dass das letzte eingegebene Zeichen wieder gelöscht wird.
100114
101115## Makros
102116
103117Makros haben die Form **\$(MacroName)** oder **\$MacroName(Param1,...)**. Makros können verschachtelt sein.
104118
105119### Eigene Makros definieren
106120
107121Eigene Makros können über Entwicklungszeit-Packages registriert werden. Siehe ide/codetemplatesdlg.pas Prozedur CreateStandardCodeMacros für Beispiele.
108122
109123## DCI-Dateiformat
110124
111125Die Vorgabe-dci-Datei der IDE ist *pcp/lazarus.dci*, wobei *pcp* für Ihren primären Konfigurationspfad (primary config path) steht. Unter Linux wäre das z.B. \$HOME/.lazarus. Kann die Datei nicht gefunden werden erstellt die IDE sie neu durch Kopieren der Datei ide/lazarus_dci_file.dci.
112126
113127Eine dci-Datei ist eine Textdatei mit einer Liste von Schablonen.
114128
115129Jede Schablone startet mit der Zeile \[Name \| Beschreibung\]. Die darauf folgenden Zeilen bilden die Schablonen-Werte.
116130
117131---
118132*From the Free Pascal wiki, page "IDE Window: Code Templates/de", as it stood on 2022-02-23 after a change by Kornelius, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history