Project Templates/de: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: Project Templates/de
| Old | New | Line | |
|---|---|---|---|
| 1 | + | # Überblick | |
| 2 | + | ||
| 3 | + | Du kannst anpassen, wie neue Projekte erstellt werden. Die IDE erlaubt Dir, deine eigenen Projekttypen zu registrieren. Dazu gibt es _designtime packages_. Das Paket *projtemplates* (es wird mit den Standard- Lazarus- Installations- Paketen mit installiert) erlaubt Dir, existierende Projekte einfach als Vorlagen zu verwenden. | |
| 4 | + | ||
| 5 | + | # Paket projtemplates | |
| 6 | + | ||
| 7 | + | Das Paket implementiert Projektvorlagen und kommt mit den Lazarus- Quellen (components/projecttemplates/projtemplates.lpk). | |
| 8 | + | ||
| 9 | + | Das Paket wird mit installiert mit den Installationspaketen von Lazarus (z.B. mit der Windows- Installation). Das Paket ergänzt im Dialog **Datei-\>Neu** eine Kategorie **Projektvorlagen**. Es ergänzt auch einen Menüeintrag **Neues Projekt aus Vorlage** im Menü **Datei**, ebenso, wie einen Menüeintrag **Optionen für Projektvorlagen** im Menü **Werkzeuge**. Dieser Menüpunkt ist nur sichtbar, wenn das Vorlagenverzeichnis existiert (siehe nächstes Kapitel) und mindestens ein Vorlagen- Unterverzeichnis enthält. | |
| 10 | + | ||
| 11 | + | In den **Optionen für Projektvorlagen** kann ein Verzeichnis ausgewählt werden. Dieses Verzeichnis sollte ein Unterverzeichnis für jede Vorlage enthalten. Eine Vorlage besteht aus einer Sammlung von Dateien, die für das neue Projekt kopiert und von diesem benutzt werden. | |
| 12 | + | ||
| 13 | + | Während des Kopiervorgangs werden in Datei- und Verzeichnis- Namen sowie dem Inhalt der Dateien Variablenersetzungen vorgenommen: __VARNAME__ wird ersetzt durch den Wert der Variabla VARNAME. Standardmäßig kennt die Engine 2 Variablen: | |
| 14 | + | ||
| 15 | + | - ProjDir: Das Verzeichnis, in dem das neue Projekt erzeugt wird. | |
| 16 | + | - ProjName: Der Name des neuen Projektes in ProjDir. | |
| 17 | + | ||
| 18 | + | Zusätzliche Variablen müssen definiert werden in der Datei *project.ini* im Verzeichnis des Projektes. Diese Datei liegt im Windows- INI- Format vor. Die Sektion \[Variables\] wird nach Variablen- Namen durchsucht. | |
| 19 | + | ||
| 20 | + | ``` ini | |
| 21 | + | [Variables] | |
| 22 | + | VarName1=Beschreibung 1[|Wert 1] | |
| 23 | + | VarName2=Beschreibung 2[|Wert 2] | |
| 24 | + | ``` | |
| 25 | + | ||
| 26 | + | Die dort gefundenen Variablen werden mit ihrer Beschreibung im Dialog angezeigt und der Nutzer muss einen Wert für diese Variablen festlegen. Die Datei **project.ini** kann eine weitere Sektion namens **project** enthalten, welche einige Informationen über das Projekt enthalten kann. Die folgenden Schlüsselworte können dort gefunden werden: | |
| 27 | + | ||
| 28 | + | ## ProjectFile | |
| 29 | + | ||
| 30 | + | Der Name der Projektdatei (ohne Erweiterung) im Vorlagenverzeichnis. Jede Datei, deren Name (ohne Endung) damit übereinstimmt, wird gesondert behandelt. Sie wird umbenannt in den Projektnamen. ProjecFile=Beispiel wird Dateien, wie Beispiel.lpi, Beispiel.lpr und Beispiel.cfg so umbenennen, wie vom Nutzer vorgegeben. Standardmäßig wird der Wert von **ProjectFile** für als project übernommen. (Beachte, dass die .ini- Datei nicht kopiert wird) | |
| 31 | + | ||
| 32 | + | ProjectFile ist nicht notwendig. Wenn nichts angegeben wird oder 'ProjectFile'.lpi nicht existiert, wird die erste *.lpi Datei im Vorlagenverzeichnis als ProjectFile eingesetzt. | |
| 33 | + | ||
| 34 | + | ## Name | |
| 35 | + | ||
| 36 | + | Name der Vorlage. Der Name und die Beschreibung wird angezeigt im Dialog Datei-\>Neu | |
| 37 | + | ||
| 38 | + | ## Author | |
| 39 | + | ||
| 40 | + | Autor der Vorlage | |
| 41 | + | ||
| 42 | + | ## Description | |
| 43 | + | ||
| 44 | + | Kurzbeschreibung des Projektes (einzeilig). Der Name und die Beschreibung werden im Dialog Datei-\>Neu angezeigt. | |
| 45 | + | ||
| 46 | + | ## Recurse | |
| 47 | + | ||
| 48 | + | Ein Boolean (1/0), welcher angibt, ob die Engine rekursiv durch Unterverzeichnisse gehen soll, oder nicht. | |
| 49 | + | ||
| 50 | + | ## Exclude | |
| 51 | + | ||
| 52 | + | eine durch Kommata getrennte Liste von Dateinamen- Erweiterungen, welche bei der Schlüsselwort- Ersetzung nicht berücksichtigt werden sollen | |
| 53 | + | ||
| 54 | + | # Vorgehen | |
| 55 | + | ||
| 56 | + | **Schritt 1:** Erzeuge Dein eigenes Vorlagen- Verzeichnis (z.B. ~/.lazarus/meinevorlagen) und setze diesen Pfad in Lazarus (Menü **Werkzeuge-\>Optionen für Projektvorlagen**) | |
| 57 | + | ||
| 58 | + | **Schritt 2:** Für alle Vorlagen- Funktionen und auch für das Erscheinen im Lazarus-Menü *Datei* musst Du mindestens eine Vorlage anlegen, welche auf Deinem vorhandenen normalen Projekt basieren kann. - Erzeuge ein Unterverzeichnis in Deinem Vorlagen- Verzeichnis (z.B. ~/.lazarus/meinevorlagen/meineerstevorlage) - Kopiere Deine Projektdateien in eben dieses Verzeichnis (*.lfm, *.pas, *.ico, *.lpi, *.lpr, *.res) | |
| 59 | + | ||
| 60 | + | **Schritt 3:** | |
| 61 | + | ||
| 62 | + | - - Erzeuge eine Datei *project.ini* in dem neuen Vorlagenverzeichnis. | |
| 63 | + | ||
| 64 | + | Das Minimum sollte in etwa so aussehen | |
| 65 | + | ||
| 66 | + | ``` ini | |
| 67 | + | [Variables] | |
| 68 | + | ||
| 69 | + | [Project] | |
| 70 | + | Name=Mein Fenster- Beispiel | |
| 71 | + | ``` | |
| 72 | + | ||
| 73 | + | **Schritt 4:** Starte Lazarus neu, damit Deine Änderungen übernommen werden | |
| 74 | + | ||
| 75 | + | ------------------------------------------------------------------------ | |
| 76 | + | ||
| 77 | + | **Optional:** Das angenehme an Projektvorlagen ist, dass es Variablen unterstützt. Da Du Dein Projekt wahrscheinlich nicht genauso benennen wirst, wie Dein Vorlageprojekt, wirst Du vermutlich etwas am Code ändern und einige Dateien umbenennen wollen. | |
| 78 | + | ||
| 79 | + | ### Dateien | |
| 80 | + | ||
| 81 | + | Benenne die Projekt- Dateien (ico, lpi, lpr, res) um in __PROJNAME__._ext_ (wobei natürlich die originale Erweiterung anstelle von _ext_ verwendet werden muss). Beispielsweise project.lpi wird zu __PROJNAME__.lpi. Beachte: Auch der Inhalt der lpi- Datei benötigt einige Bereinigungen, beispielsweise müssten vielleicht historische Einträge oder Verweise auf Dateien entfernt werden, es ist unklar, ob die lpi- Datei überhaupt benötigt wird. | |
| 82 | + | ||
| 83 | + | ### Dateiinhalt | |
| 84 | + | ||
| 85 | + | Ändere für alle Dateien, in denen auf eine project.ext verwiesen wird, die entsprechenden Verweise auf __PROJNAME__, beispielsweise \<Filename Value="project.lpr"\> \<Filename Value="__PROJNAME__.lpr"\> | |
| 86 | + | ||
| 87 | + | Du kannst optional Deine eigenen Variablen definieren, beispielsweise kannst Du der *unit.pas* einen anderen Dateinamen geben. Du könntest beispielsweise __MAINUNIT__ und __MAINFORM__ in der Datei *project.ini* definieren als MAINUNIT und MAINFORM, während der Erzeugung des Lazarus- Projektes wirst Du gefragt nach den neuen Namen. Danach wird jedes Auftreten - beispielsweise von __MAINUNIT__ - ersetzt durch den Text, den Du bei der Anlage des neuen Projektes festgelegt hast (vermeide Sonder- und Leerzeichen) | |
| 88 | + | ||
| 89 | + | Beachte, dass das fpr alle Variablen funktioniert. Jedes Auftreten von Variablen in Dateinamen und -inhalten wird ersetzt durch das, was Du bei der Erzeugung eines neuen Projektes festgelegt hast, das auf Deiner Vorlage beruht. Vordefinierte Vraiablen sind PROJNAME und PROJDIR, aber ich habe bislang keinen Zweck von PROJDIR erkennen können. | |
| 90 | + | ||
| 91 | + | ## Beispiel | |
| 92 | + | ||
| 93 | + | - project.ini*: | |
| 94 | + | ||
| 95 | + | ``` ini | |
| 96 | + | [Variables] | |
| 97 | + | MAINUNIT=Dateinamen der Standard- Datei unit.pas | |
| 98 | + | MAINFORM=Name des Formulars | |
| 99 | + | ||
| 100 | + | [Project] | |
| 101 | + | Name=Meine eigene Anwendung | |
| 102 | + | Author=Hansaplast | |
| 103 | + | Description=Lazarus LCL- Anwendung an meine eigenen Bedürfnisse angepasst | |
| 104 | + | ``` | |
| 105 | + | ||
| 106 | + | - __PROJNAME__.lpr*: | |
| 107 | + | ||
| 108 | + | ``` pascal | |
| 109 | + | program __PROJNAME__; | |
| 110 | + | ||
| 111 | + | {$mode objfpc}{$H+} | |
| 112 | + | ||
| 113 | + | uses | |
| 114 | + | {$IFDEF UNIX}{$IFDEF UseCThreads} | |
| 115 | + | cthreads, | |
| 116 | + | {$ENDIF}{$ENDIF} | |
| 117 | + | Interfaces, // this includes the LCL widgetset | |
| 118 | + | Forms, __MAINUNIT__; | |
| 119 | + | ||
| 120 | + | {$R *.res} | |
| 121 | + | ||
| 122 | + | begin | |
| 123 | + | Application.Initialize; | |
| 124 | + | Application.CreateForm(T__MAINFORM__, __MAINFORM__); | |
| 125 | + | Application.Run; | |
| 126 | + | end. | |
| 127 | + | ``` | |
| 128 | + | ||
| 129 | + | - __MAINUNIT__.pas*: | |
| 130 | + | ||
| 131 | + | ``` pascal | |
| 132 | + | unit __MAINUNIT__; | |
| 133 | + | ||
| 134 | + | {$mode objfpc}{$H+} | |
| 135 | + | ||
| 136 | + | interface | |
| 137 | + | ||
| 138 | + | uses | |
| 139 | + | Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls, | |
| 140 | + | Buttons, StdCtrls, LCLIntf, LCLType, ComCtrls; | |
| 141 | + | ||
| 142 | + | type | |
| 143 | + | ||
| 144 | + | { __MAINFORM__ } | |
| 145 | + | ||
| 146 | + | T__MAINFORM__ = class(TForm) | |
| 147 | + | ||
| 148 | + | ... | |
| 149 | + | ||
| 150 | + | procedure T__MAINFORM__.FormPaint(Sender: TObject); | |
| 151 | + | ... | |
| 152 | + | ||
| 153 | + | //etc | |
| 154 | + | </syntaxhighlight"> | |
| 155 | + | ||
| 156 | + | *__MAINUNIT__.lfm*: | |
| 157 | + | <syntaxhighlight lang="pascal"> | |
| 158 | + | object __MAINFORM__: T__MAINFORM__ | |
| 159 | + | ... | |
| 160 | + | ``` | |
| 161 | + | ||
| 162 | + | Behalte im Auge, dass diese kurze Anleitung dir lediglich beim Start helfen kann. Die angebotenen Variablen- Ersetzungs- Mechanismen können für viele verschiedene Zwecke eingesetzt werden, beispielsweise auch für Fenster- Titel, Copyright- Erklärungen, web- links auf Deinen Formularen und spezifische Objekte. | |
| 163 | + | ||
| 164 | + | --- | |
| 165 | + | *From the Free Pascal wiki, page "Project Templates/de", as it stood on 2022-01-30 after a change by RolfW, 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).* |
