Sign in Join
Wiki copytemporary

Lazarus Packages/de: what changed

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

Title: Lazarus Packages/de

OldNewLine
1+## Überblick über das Lazarus Package System
2+
3+### Was ist ein Lazarus Package
4+
5+Ein Lazarus Package ist eine Sammlung von Units und Komponenten, die Informationen darüber enthalten, wie sie kompiliert werden können und wie sie von Projekten und anderen Packages oder der [[Glossary|IDE]] genutzt werden können. Im Gegensatz zu [[Glossary|Delphi]] sind Packages nicht auf Bibliotheken beschränkt und sie können OS unabhängig sein. ([[packages|Delphi Packages]] sind speziell kompilierte Bibliotheken, die von Anwendungen, der IDE oder beiden verwendet werden. Sie benötigen in-compiler Unterstützung, wozu FPC im Moment nicht in der Lage ist und natürlich ist diese Magie OS abhängig.)
6+
7+Gegenwärtig unterstützt der [[Free Pascal/de|Free Pascal]] Compiler nur statische Packages, keine dynamischen Packages. Deshalb müssen sie die IDE jedesmal kompilieren und neu starten, wenn ein Package installiert oder deinstalliert wird.
8+
9+Ein Lazarus Package wird durch den Namen und seine Version identifiziert/angesehen.
10+
11+Packages sind ideal, um Code zwischen Projekten zu teilen.
12+
13+### Für Entwickler mit Delphi-Erfahrung
14+
15+Gerade wenn Sie mit Delphi-Packages vertraut sind, ist es notwendig, dass Sie den folgenden Abschnitt lesen. Es gibt nämlich wichtige Unterschiede zwischen einem Delphi- und einem Lazarus-Package.
16+
17+- Lazarus Packages bestehen nicht nur aus einer dynamischen Library. Sie werden auch verwandt, um Units in mehreren Projekten zu verwenden und große Projekte zu modularisieren.
18+- Manchmal wird die Projektdatei eines Paketes in Delphi *Paket-Projekt* genannt. So etwas macht bei Lazarus keinen Sinn.
19+- Viele Delphi Packages bestehen aus einem *Paket-Projekt* pro Compiler-Version. Das wird ebenfalls unter Lazarus nicht benötigt. Denn Lazarus Packages enthalten auch Versions-Informationen und Projekte können definieren, dass sie mindestens eine bestimmte Version des Packages benötigen. Lazarus wird dann automatisch die richtige Version laden.
20+
21+### FAQ
22+
23+F: Muss ich ein Package installieren?
24+
25+A: Sie müssen ein Package nur dann installieren, wenn es Entwicklungszeit Elemente enthält, wie Komponenten für die IDE Komponentenpalette. Wenn sie solche Elemente nicht benutzen, dann müssen sie auch das Package nicht installieren. Wenn sie ein Package nur in ihrem Projekt verwenden, dann installieren sie es nicht.
26+
27+F: Ich habe ein Package installiert, aber die IDE findet die Units nicht.
28+
29+A: Das Installieren eines Packages bedeutet, dass das Package in die IDE integriert wurde, nicht in ihr Projekt. Das sind verschiedene Dinge. Um ein Package in ihrem Projekt zu verwenden, benutzen sie Projekt -\> Projektinspektor -\> Hinzufügen -\> Neue Anforderung. Und deinstallieren sie das Package, falls es keine IDE goodies enthält.
30+
31+### Schnellstart
32+
33+Um das Packagesystem in Aktion zu sehen und um es zu benutzen, tun sie das folgende:
34+
35+Erzeugen eines neuen Package:
36+
37+- Datei-\> Neu... -\> Package -\> Standard Package
38+- Ein Package Editor wird geöffnet
39+- Benutzen sie den Save Button oben links.
40+- Abhängig von ihrer 'Namensvergabe' Einstellung in den 'Umgebungseinstellungen', wird die IDE sie fragen, die Datei mit kleinen Buchstaben zu speichern. Sagen sie ja.
41+
42+Glückwunsch: Sie haben gerade ihr erstes Package erstellt!
43+
44+Hinzufügen einer neuen Komponente:
45+
46+- Benutzen sie den Add Button -\> Neue Komponente
47+- Wählen sie eine Komponente in der Vorfahr-Typ Combobox. Zum Beispiel: TBevel.
48+- Klicken sie auf OK
49+- Die Datei wird zum Package hinzugefügt und im Editor geöffnet
50+- Installieren sie das Package durch Klicken auf den 'install' Button oben im Package Editor.
51+- Lazarus will das Package speichern und sie fragen, ob die IDE neu erstellt werden soll. Sagen sie ja.
52+- Die Packages werden statisch gelinkt, daher ist ein Neustart der IDE notwendig.
53+- Starten sie Lazarus neu und sehen sie ihre neue Komponente in der Komponentenpalette (Zum Beispiel: Ein TBevel1 wird auf der 'Additional' Seite sein).
54+- Wenn sie ihre neue Komponente nicht in der Komponentenpalette sehen, ist es höchstwahrscheinlich, dass sie nicht die rekompilierte Version von Lazarus gestartet haben. Sie können sehen wohin Lazarus erstellt unter: Einstellungen -\> Umgebungseinstellungen -\> Dateien -\> Lazarus Verzeichnis. Anstelle Lazarus direkt aufzurufen, können sie auch startlazarus benutzen, das das neuerstellte Lazarus startet, zum Beispiel die Lazarus .exe Datei im ~/.lazarus Verzeichnis, wenn sie keinen Schreibzugriff auf das Verzeichnis haben, in dem Lazarus installiert ist.
55+
56+Glückwunsch: Sie haben gerade ihr erstes Package installiert mit ihrer ersten Package Komponente.
57+
58+### Die IDE Menüeinträge für Packages:
59+
60+- Datei-\> Neu... -\> Package -\> Standard Package
61+
62+Erzeugt ein neues Package.
63+
64+- Projekt -\> Projektinspektor
65+
66+` Hier können sie sehen, welche Packages vom aktuell geöffneten Projekt benötigt werden.`\
67+` Sie können neue Abhängigkeiten hinzufügen und nichtgenutzte entfernen.`
68+
69+- Projekt -\> Compilereinstellungen -\> Übernehmen
70+
71+` Hier können sie sehen, welche Compilereinstellungen von welchem Package geerbt sind .`
72+
73+Komponenten -\>
74+
75+` - 'Geladenes Paket öffnen'`\
76+`   Ein Dialog zeigt alle geöffneten Packages mit ihrem Status.`\
77+`   `\
78+` - 'Paketdatei (.lpk) öffnen'`\
79+`   Öffnet eine .lpk Datei`\
80+` `\
81+` - 'Paket der aktuellen Unit öffnen'`\
82+`   Öffnet die .lpk Datei, die zur Datei im Quelltexteditor gehört`\
83+`   `\
84+` - 'Letztes Paket wieder öffnen'`\
85+`   Öffnet eine vor kurzem geöffnete Package Datei (lpk Datei).`
86+
87+` - 'Aktuelle Unit zu einem Paket hinzufügen'`\
88+`   Fügt die Unit im Editor zu einem Package hinzu.`\
89+`   `\
90+` - 'Paketgraph'`\
91+`   Der Paketgraph zeigt alle geöffneten Packages und ihre Abhängigkeiten.`
92+
93+` - 'Installierte Pakete einrichten'`\
94+`   Bearbeitet die Liste der in der IDE installierten Packages. Installiert oder deinstalliert verschiedene Packages auf einmal.`
95+
96+Projekt -\> Projektinspektor
97+
98+` Hier können sie alle Packages, die von Projekt verwendet werden, sehen und bearbeiten.`
99+
100+### Die Theorie
101+
102+Jedes Lazarus Package hat eine .lpk Datei. Ein Package wird identifiziert durch seinen Namen und seine Version. Der Name muss mit dem lpk Dateinamen übereinstimmen. Zum Beispiel:
103+
104+Name: Package1, Version: 1.0, Dateiname: /home/.../package1.lpk.
105+
106+Hinweis: Um ein Package umzubenennen, benutzen sie 'Speichern unter'.
107+
108+- Die IDE erzeugt automatisch die Haupt- Quelldatei (package1.pas). Siehe unten. Die lpk Datei enthält Informationen über die benötigten Packages, die Dateien, die sie benutzt, wie man sie kompiliert, und was benötigt wird, um das Package von anderen Packages/Projekten aus zu benutzen. Das Verzeichnis, wo sich die lpk Datei befindet, wird das "package directory" genannt.
109+- Die IDE pflegt eine Liste aller Package Dateien (\<config directory\>/packagelinks.xml). Jedesmal, wenn ein Package in der IDE geöffnet wird, wird es zu dieser Liste hinzugefügt. Wenn ein Package geöffnet wird, öffnet die IDE automatisch alle benötigten Packages über diese Liste.
110+- Es gibt drei Basis Packages: FCL, LCL und SynEdit. Diese sind ein Teil der IDE und daher werden sie automatisch erzeugt, nur mit Leserechten und sie haben keine lpk Datei.
111+- Normalerweise hat ein Package ein Quellverzeichnis mit einigen Pascal Units. Und normalerweise wird die lpk Datei auch dort sein. Ein Package hat auch ein Ausgabe Verzeichnis. Voreinstellung ist das Unterverzeichnis 'lib/\$(TargetCPU)-\$(TargetOS)/' im Package Verzeichnis.
112+- Bevor ein Package kompiliert wird, prüft die IDE alle benötigten Packages und wenn sie ein Update benötigen und das auto update flag haben, werden sie zuerst kompiliert. Dann erstellt die IDE die Package Hauptquelldatei. Wenn die lpk Datei package1.lpk war, dann ist die Hauptquelldatei package1.pas. Diese Datei enthält alle Units im uses Abschnitt plus einer 'Register' Prozedur, die im intialization Abschnitt aufgerufen wird.
113+
114+Zum Beispiel:
115+
116+`This file was automatically created by Lazarus. Do not edit!`\
117+`This source is only used to compile and install`\
118+`the package GTKOpenGL 1.0.`\
119+` unit GTKOpenGL;`\
120+`interface`\
121+`uses GTKGLArea, GTKGLArea_Int, NVGL, NVGLX, LazarusPackageIntf;`\
122+`implementation`\
123+`procedure Register;`\
124+`begin`\
125+`  RegisterUnit('GTKGLArea', @GTKGLArea.Register);`\
126+`end;`\
127+`initialization`\
128+`  RegisterPackage('GTKOpenGL', @Register)`\
129+`end.`
130+
131+- Dann wird der Compiler aufgerufen und das Package wird in das Ausgabe Verzeichnis kompiliert.
132+- Nach einer erfolgreichen Kompilierung wird die Statusdatei erstellt. Die Statusdatei wird in das Ausgabe Verzeichnis abgelegt. Sie hat den Namen \<packagename\>.compiled und enthält die Information, wie das Package kompiliert wurde. Diese Statusdatei wird von der IDE benutzt um zu prüfen, ob ein Update benötigt wird.
133+
134+Zum Beispiel: gtkopengl.compiled:
135+
136+`<?xml version="1.0"?>`\
137+`<CONFIG>`\
138+`  <Compiler Value="/usr/bin/ppc386" Date="781388725"/>`\
139+`  <Params Value=" -Rintel -S2cgi -CD -Ch8000000 -OG1p1`\
140+`    -Tlinux -gl -vewnhi -l -Fu../../../lcl/units`\
141+`    -Fu../../../lcl/units/gtk -Fu../../../packager/units`\
142+`    -Fu. -FElib/ gtkopengl.pas"/>`\
143+`</CONFIG>`
144+
145+- Die IDE öffnet alle benötigten Packages automatisch. Das bedeutet, sie öffnet alle installierten Packages, alle zum Installieren vorgemerkten Packages (auto install), alle Packages mit einem geöffneten Editor, alle Packages, die vom Projekt benötigt werden und alle Packages, die von einem der anderen Packages benötigt werden. Nichtbenötigte Packages werden automatisch entladen, wenn die IDE in den Leerlauf geht.
146+- Die IDE öffnet niemals zwei Packages mit dem selben Namen zur selben Zeit. Wenn der Benutzer eine andere Package Datei mit dem selben Namen wie das bereits geöffnete Package öffnet, wird die IDE fragen, ob das alte ersetzt werden soll.
147+- Die IDE führt zwei extra Sets von Packages: Die 'installed' Packages und die 'auto install' Packages. Die auto install Packages werden bei der nächsten Kompilierung zur IDE gelinkt. Sie erstellt zwei neue Dateien im config Verzeichnis: staticpackages.inc und idemake.cfg. Dann ruft sie 'make ide OPT=@/path/to/your/config/idemake.cfg' auf um sich selbst zu kompilieren.
148+
149+### Hinweise und Tipps
150+
151+Bitte fügen sie hier ihre Hinweise, Tipps oder gotchas ein.
152+
153+- Um ein Package umzubenennen verwenden sie 'speichern unter...'.
154+
155+- Wenn Sie Pfade für units im Package definieren (package - öffnen - Doppelklick auf entsprechenden Package Namen in der Liste : Einstellungen - Bedienung - Units), die automatisch jedem Projekt, das das Package nutzten soll, hinzugefügt werden sollen, dann seien Sie vorsichtig : tragen Sie keine Pfade ein, die früher sind als der Pfad der .lpk Datei (original: don't specify paths that are [[earlier]] than the path that the .lpk file lives in). Aufgrund meiner Verzeichnis Anordnung hatte ich genau das getan, und das bereitete mir eine Menge Kopfschmerzen : daraufhin wurden automatisch die falschen Pfade auf das Projekt übertragen, das das Package nutzte.
156+
157+Beispiel
158+
159+`Ich werde das tiOPF Framework als Beispiel verwenden. Das tiOPF hat die`\
160+`folgende Verzeichnisstrukur, wegen der Tatsache, dass es kompiliert mit FPC,`\
161+`Delphi 5-7, D2005 und D2006.`\
162+\
163+`Source                <= full path \Programming\3rdParty\tiOPF\Source`\
164+` \Compilers`\
165+`    \Delphi7          <= Delphi 7 Package Dateien befinden sich hier`\
166+`    \D2005`\
167+`    \FPC              <= die tiOPF.lpk befindet sich hier`\
168+` \Core                <= core Unit Dateien`\
169+` \Options             <= optionale Unit Datei für zusätzliche Features`\
170+` \GUI`\
171+\
172+`Using this example, I included in the "Options - Usage - Units"`\
173+`editbox the following paths:`\
174+`"$(PkgOutDir);..\..\Core;..\..\Options;..\..\GUI" which will be added`\
175+`to whatever project uses this package.`
176+
177+***'Bold textBold text***'
178+
179+### Existierende Komponenten zu einem Package hinzufügen
180+
181+Wenn sie eine Datei, die eine Komponente enthält, zu einem Package hinzufügen wollen, dann können sie folgendes tun:
182+
183+- Öffnen sie die Package Datei
184+- Klicken sie auf 'Hinzufügen', um ein neues Element zum Package hinzuzufügen.
185+- Wählen sie den 'Neue Unit' Tab im erscheinenden Dialog.
186+- Wählen sie dann die hinzuzufügende Datei aus.
187+- Überprüfen sie die Option 'Besitzt Register-Prozedur', falls die Unit eine Register Prozedur enthält. Wenn die Option deaktiviert ist, werden die Komponenten nicht in der Komponentenpalette angezeigt.
188+- Klicken sie auf 'Neue Unit'.
189+- Rekompilieren und installieren sie das Package.
190+
191+Das war alles. Die Komponente(n) sollte jetzt in der Komponentenpalette angezeigt werden.
192+
193+### Die Register Prozedur
194+
195+Um eine Komponente in der Komponenten Palette anzuzeigen, muss sie in Lazarus registriert werden. Dieses geschieht in der 'Register' Procedure. Diese Procedure muss
196+
197+- 1.im Interfaceteil ihrer Unit stehen,
198+- 2.einen oder mehrere 'registerComponent calls' ausgeben
199+- 3.Eigenschafts- und Komponenteneditoren für die Komponenten installieren.
200+
201+Es kann eine oder mehrere Register Procedures in einem Package geben: im Package Editor muss man die Units angeben, die eine 'register' Procedure haben, damit Lazarus weiß, welche Procedure es bei der Package Installation aufrufen muss.
202+
203+Es gibt 2 Wege eine Unit zu kennzeichnen, dass sie eine Register procedure hat :
204+
205+- Beim Einfügen der Unit in das Package (siehe 'Einfügen vorhandener Komponenten in ein Package')
206+- oder Sie können die Unit auswählen im Package Dialog und die \`Register Checkbox\` im Detail Panel setzen.
207+
208+Vergessen Sie nicht das Recompilieren und Installieren des Package nach dem Ändern der Eigenschaften.
209+
210+## Vorstellung der Lazarus Packages
211+
212+Nachdem bislang über den Umgang mit Packages gesprochen wurde, sollen nun die verfügbaren Packages (kurz) vorgestellt werden.
213+
214+### Zu Lazarus gehörende Packages
215+
216+#### cgiLaz
217+
218+#### CGILazIDE
219+
220+#### CodeTools
221+
222+#### DBFLaz
223+
224+Dieses Package stellt die Komponente TDbf zur Verfügung, mit der ein Zugriff auf dBase und FoxPro Tabellen möglich ist. Die Komponente erscheint auf der 'Data Access' Seite in der Komponentenpalette. Für Details zu TDbf siehe [[Lazarus Tdbf Tutorial/de|TDbf Tutorial]].
225+
226+#### demopackagewithhelp
227+
228+#### FCL
229+
230+Die Free Pascal Component Library.
231+
232+#### fpcunitconcolerunner
233+
234+#### fpcunitide
235+
236+#### fpcunittestrunner
237+
238+#### gtk2interface
239+
240+#### h2paswizard
241+
242+Dieses Package ermöglicht die Verwendung von C-Bibliotheken durch Anpassung der Header-Dateien. Nähere Informationen sind [[Creating bindings for C libraries|hier]] zu finden.
243+
244+#### IDEIntf
245+
246+#### imagesforlazarus
247+
248+#### InterbaseLaz
249+
250+Das Package stellt 3 Komponenten (TIBDatabase, TIBTransaction, TIBQuery) für den Zugriff auf Interbase Datenbanken bereit. Die Komponenten erscheinen auf der 'Interbase' Seite in der Komponentenpalette.
251+
252+#### JPEGForLazarus
253+
254+Dieses Package erweitert die Komponenten, die für den Umgang mit Bildern zuständig sind, um die Möglichkeit, auch Bilder im JPEG Format verarbeiten zu können.
255+
256+#### lazopenglcontext
257+
258+#### lazreport
259+
260+LazReport ist ein Reportgenerator für Lazarus. Zum Funktionieren muss das Package [[Lazarus Packages/de|Printer4Lazarus]] installiert sein.
261+
262+#### LCL
263+
264+Die Lazarus Component Library.
265+
266+#### macosfiles
267+
268+#### MemDSLaz
269+
270+#### popupnotifierlaz
271+
272+#### prettyformat
273+
274+#### Printer4Lazarus
275+
276+Dieses Package erweitert Lazarus um Dialoge zum Drucken.
277+
278+#### ProjTemplates
279+
280+#### RunTimeTypeInfoControls
281+
282+#### rx
283+
284+#### SDFLaz
285+
286+#### semaphorgridlpk
287+
288+#### SQLDBLaz
289+
290+Das vielleicht wichtigste Datenbankpackage. Es stellt Komponenten für den Zugriff auf Firebird, ODBC, Oracle, MySQL und PostgreSQL Datenbanken zur Verfügung.
291+
292+#### SynEdit
293+
294+Dieses Package stellt die Komponenten auf der SynEdit Seite der Komponentenpalette zur Verfügung.
295+
296+#### synuni
297+
298+#### TAChart
299+
300+Plotten von Kurven und Daten ([[TAChart documentation]])
301+
302+#### trayiconlaz
303+
304+#### TurboPowerIPro
305+
306+Enthält eine Komponente zur Anzeige von HTML-Code (wird auch von der IDE für die Anzeige der Code-Hints benutzt)
307+
308+### Packages von Drittanbietern
309+
310+Wem die bei Lazarus enthaltenen Packages nicht ausreichen, der hat natürlich die Möglichkeit, Lazarus mit Packages von Drittanbietern zu erweitern. Einen Überblick über diese Packages bietet auch diese [[Components and Code examples|Seite]].
311+
312+#### fblib
313+
314+Dieses Package stellt Komponenten für den Zugriff auf Firebird Datenbanken zur Verfügung. Abweichend zu anderen Datenbankkomponenten erfolgt die Anbindung nicht über TDatasource. Der Download ist von der [FBLib Webseite](http://fblib.altervista.org/) möglich.
315+
316+#### lazrichview
317+
318+Dieses Package stellt Komponenten zur Anzeige, Bearbeitung und Ausdruck von Hypertext Dokumenten bereit. Der Download ist von der [Sourceforge Seite](http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=176666) möglich. Details zum Package finden sie auf dieser [[RichView/de|Seite]].
319+
320+#### packpowerpdf
321+
322+PowerPDF stellt Komponenten zum Erstellen von PDF Dokumenten zur Verfügung. Der Download ist von der [Lazarus CCR Sourceforge Seite](http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=98986&release_id=376799) möglich. Details zum Package finden sie auf dieser [[PowerPDF/de|Seite]].
323+
324+## Mitwirkende und Kommentare
325+
326+Die Anfänge dieser Seite stammen aus der epikwiki [Version](http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusPackages).
327+
328+## Siehe auch
329+
330+- [[How To Write Lazarus Component]] - a tutorial about creating a new component.
331+- [[Install Packages]]
332+
333+---
334+*From the Free Pascal wiki, page "Lazarus Packages/de", as it stood on 2017-03-30 after a change by Wp, 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).*
335+Category: Lazarus/de

Back to history