Difference between revisions of "Lazarus Packages/de"

From Lazarus wiki
Jump to navigationJump to search
Line 57: Line 57:
 
== Die Theorie ==
 
== Die Theorie ==
  
Each Lazarus package has a .lpk file. A package is identified by its name and its version. The name must correspond to the lpk filename. For example:
+
Jedes Lazarus Package hat eine .lpk Datei. Ein Package wird identifiziert durch seinen Namen und seine Version. Der Name muß mit dem lpk Dateinamen übereinstimmen. Zum Beispiel:
  
Name: Package1, Version: 1.0, Filename: /home/.../package1.lpk.
+
Name: Package1, Version: 1.0, Dateiname: /home/.../package1.lpk.
  
Hint: To rename a package, use 'save as'.
+
Hinweis: Um ein Package umzubenennen, benutzen sie 'Speichern unter'.
  
* The IDE automatically creates the main source file (package1.pas). See below. The lpk file contains information about the required packages, the files it uses, how to compile them, and what is needed to use the package by other packages/projects. The directory where the lpk file is, is called the "package directory".
+
* 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.
* The IDE maintains a list of all package files (packagelinks.xml). Everytime a package is opened in the IDE it will be added to this list. When a package is opened, the IDE automatically opens all required packages via this list.
+
* Die IDE pflegt eine Liste aller Package Dateien (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.
* There are three base packages: FCL, LCL and SynEdit. These are parts of the IDE and so they are autocreated, readonly and have no lpk file.
+
* 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.
* Normally a package has a source directory with some pascal units. And normally the lpk file will be there too. A package has also an output directory. Default is the subdirectory 'lib' in the package directory.
+
* 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' im Package Verzeichnis.
* Before a package is compiled the IDE checks all required packages and if they need update and have the auto update flag, they are compiled first. Then the IDE creates the package main source file. If the lpk file was package1.lpk, then the main source file is package1.pas. This file contains all units in the uses section plus a 'Register' procedure, which is called in the intialization section.  
+
* 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, welche im intialization Abschnitt aufgerufen wird.  
  
For example:
+
Zum Beispiel:
  
 
  This file was automatically created by Lazarus. Do not edit!
 
  This file was automatically created by Lazarus. Do not edit!
Line 86: Line 86:
 
  end.
 
  end.
  
* Then the compiler is called and the package is compiled to the output directory.
+
* Dann wird der Compiler aufgerufen und das Package wird in das Ausgabe Verzeichnis kompiliert.
* After successful compilation the state file is created. The state file is put into the output directory. It has the name <packagename>.compiled and contains the information, how the package was compiled. This state file is used by the IDE to check if update is needed.
+
* 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.
  
For example: gtkopengl.compiled:
+
Zum Beispiel: gtkopengl.compiled:
  
 
  <?xml version="1.0"?>
 
  <?xml version="1.0"?>
Line 100: Line 100:
 
  </CONFIG>
 
  </CONFIG>
  
* The IDE opens all needed packages automatically. This means, it opens all installed packages, all packages marked for installation (auto install), all packages with an open Editor, all packages required by the project and all packages required by one of the other packages. Unneeded packages are automatically unloaded, when the IDE becomes idle.
+
* 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.
* The IDE never opens two packages with the same name at the same time. When the user opens another package file with the same name as an already opened package the IDE will ask to replace the old one.
+
* 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.
* The IDE maintains two extra sets of packages: The 'installed' packages and the 'auto install' packages. The auto install packages will be linked into the IDE on next compile. It creates two new files in the config directory: staticpackages.inc and idemake.cfg. Then it calls 'make ide OPT=@/path/to/your/config/idemake.cfg' to compile itself.
+
* 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.
  
 
== Mitwirkende und Kommentare ==
 
== Mitwirkende und Kommentare ==
  
 
Diese Seite wurde von der epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusPackages Version] konvertiert.
 
Diese Seite wurde von der epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusPackages Version] konvertiert.

Revision as of 21:17, 8 October 2005

Überblick über das Lazarus Package System

Was ist ein Lazarus Package

Ein Lazarus Package ist eine Sammlung von Units und Komponenten, enthaltend Informationen wie sie kompiliert werden können und wie sie von Projekten und anderen Packages oder der IDE genutzt werden können. Im Gegensatz zu Delphi, sind Packages nicht auf Bibliotheken beschränkt und sie können OS unabhängig sein. (Delphi: ein Package ist eine speziell kompilierte Bibliothek, verwendet von Anwendungen, der IDE oder beiden. Delphi Packages benötigen Compiler Magie, wozu FPC im Moment nicht in der Lage ist und natürlich ist diese Magie OS abhängig.)

Gegenwärtig unterstützt der Free Pascal Compiler nur statische Packages. Daher müssen sie die IDE kompilieren und neu starten, jedesmal wenn ein Package installiert oder deinstalliert wird.

Ein Lazarus Package wird identifiziert/angesehen durch den Namen und seine Version.

Schnellstart

To see the packagesystem in action and to get used to it, do the following:

Creating a new package:

  • File->New... -> Package -> Standard Package
  • A package editor opens
  • Use the Save button at top left.
  • Depending on your 'naming' setting in the 'environment options', the IDE will ask you to save the file lowercase. Say yes.

Congratulations: You have just created your first package!

Adding a new component:

  • Use the Add button -> New component
  • Choose a component in the ancestor type combobox. For instance: TBevel.
  • Click Ok
  • The file will be added to the package and opened in the editor
  • Install the package by clicking the 'install' button in the top of the package editor.
  • Lazarus will save the package and ask you, if the IDE should be rebuilt. Say yes.
  • The packages are statically linked, so a restart of the IDE is needed.
  • Restart Lazarus and see your new component in the component palette (For example: A TBevel1 will be on the 'Additional' page).
  • If you do not see your new component in the component palette, it is most likely that you are not running the re-compiled version of Lazarus. You can set where Lazarus builds to in: Environment -> Environment options -> Files -> Lazarus directory. Instead of calling lazarus directly, you also can use startlazarus, which starts the newly created lazarus, for example the lazarus executable in the ~/.lazarus directory, if you don't have write access to the directory lazarus was installed into.

Congratulations: You have just installed your first package with your first package component.

Die IDE Menüeinträge für Packages:

  • Datei->Neu... -> Package -> Standard Package

Erzeugt ein neues Package.

  • Projekt -> Projekt Inspektor
 Hier können sie sehen, welche Packages benötigt werden vom akzuell geöffneten Projekt.
 Sie können neue Abhängigkeiten hinzufügen und nichtgenutzte entfernen.
  • Projekt -> Compilereinstellungen -> Übernehmen
 Hier können sie sehen, welche Compilereinstellungen geerbt sind von welchem Package.

Komponenten -> 5 neue Einträge

 - 'Open package'
   Ein Dialog zeigt alle geöffneten Packages mit ihrem Status.
   
 - 'Paketdatei (.lpk) öffnen'
   Öffnet eine .lpk Datei
   
 - 'Open recent package'
   Öffnet eine vor kurzem geöffnete Package Datei (lpk Datei).
   
 - 'Paketgraph'
   Der Paketgraph zeigt alle geöffneten Packages und ihre Abhängigkeiten.

Die Theorie

Jedes Lazarus Package hat eine .lpk Datei. Ein Package wird identifiziert durch seinen Namen und seine Version. Der Name muß mit dem lpk Dateinamen übereinstimmen. Zum Beispiel:

Name: Package1, Version: 1.0, Dateiname: /home/.../package1.lpk.

Hinweis: Um ein Package umzubenennen, benutzen sie 'Speichern unter'.

  • 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.
  • Die IDE pflegt eine Liste aller Package Dateien (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.
  • 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.
  • 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' im Package Verzeichnis.
  • 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, welche im intialization Abschnitt aufgerufen wird.

Zum Beispiel:

This file was automatically created by Lazarus. Do not edit!
This source is only used to compile and install
the package GTKOpenGL 1.0.
unit GTKOpenGL; interface uses GTKGLArea, GTKGLArea_Int, NVGL, NVGLX, LazarusPackageIntf; implementation procedure Register; begin RegisterUnit('GTKGLArea', @GTKGLArea.Register); end; initialization RegisterPackage('GTKOpenGL', @Register) end.
  • Dann wird der Compiler aufgerufen und das Package wird in das Ausgabe Verzeichnis kompiliert.
  • 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.

Zum Beispiel: gtkopengl.compiled:

<?xml version="1.0"?>
<CONFIG>
  <Compiler Value="/usr/bin/ppc386" Date="781388725"/>
  <Params Value=" -Rintel -S2cgi -CD -Ch8000000 -OG1p1
    -Tlinux -gl -vewnhi -l -Fu../../../lcl/units
    -Fu../../../lcl/units/gtk -Fu../../../packager/units
    -Fu. -FElib/ gtkopengl.pas"/>
</CONFIG>
  • 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.
  • 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.
  • 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.

Mitwirkende und Kommentare

Diese Seite wurde von der epikwiki Version konvertiert.