Lazarus Packages/de

From Lazarus wiki
Revision as of 00:12, 12 March 2006 by Flaze (talk | contribs)
Jump to navigationJump to search

Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) português (pt) русский (ru) slovenčina (sk)

Ü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 jedesmal kompilieren und neu starten, wenn ein Package installiert oder deinstalliert wird.

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

FAQ

F: Muß ich ein Package installieren?

A: Sie müssen ein Package nur dann installieren, wenn es designtime 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.

F: Ich habe ein Package installiert, aber die IDE findet die Units nicht.

A: Das Installieren eines Packages bedeutet, daß 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.

Schnellstart

Um das Packagesystem in Aktion zu sehen und um es zu benutzen, tun sie das folgende:

Erzeugen eines neuen Package:

  • Datei->Neu... -> Package -> Standard Package
  • Ein Package Editor wird geöffnet
  • Benutzen sie den Save Button oben links.
  • Abhängig von ihrer 'Namensvergabe' Einstellung in den 'Umgebungseinstellungen', wird die IDE sie fragen, die Datei mit kleinen Buchstaben zu speichern. Sagen sie ja.

Glückwunsch: Sie haben gerade ihr erstes Package erstellt!

Hinzufügen einer neuen Komponente:

  • Benutzen sie den Add Button -> Neue Komponente
  • Wählen sie eine Komponente in der Vorfahr-Typ Combobox. Zum Beispiel: TBevel.
  • Klicken sie auf OK
  • Die Datei wird zum Package hinzugefügt und im Editor geöffnet
  • Installieren sie das Package durch Klicken auf den 'install' Button oben im Package Editor.
  • Lazarus will das Package speichern und sie fragen, ob die IDE neu erstellt werden soll. Sagen sie ja.
  • Die Packages werden statisch gelinkt, daher ist ein Neustart der IDE notwendig.
  • Starten sie Lazarus neu und sehen sie ihre neue Komponente in der Komponentenpalette (Zum Beispiel: Ein TBevel1 wird auf der 'Additional' Seite sein).
  • Wenn sie ihre neue Komponente nicht in der Komponentenpalette sehen, ist es höchstwahrscheinlich, daß 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, welches das neuerstellte Lazarus started, zum Beispiel die Lazarus .exe Datei im ~/.lazarus Verzeichnis, wenn sie keinen Schreibzugriff auf das Verzeichnis haben, in dem Lazarus installiert ist.

Glückwunsch: Sie haben gerade ihr erstes Package installiert mit ihrer ersten Package Komponente.

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

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

Erzeugt ein neues Package.

  • Projekt -> Projektinspektor
 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 ->

 - 'Geladenes Paket öffnen'
   Ein Dialog zeigt alle geöffneten Packages mit ihrem Status.
   
 - 'Paketdatei (.lpk) öffnen'
   Öffnet eine .lpk Datei
 
 - 'Paket der aktuellen Unit öffnen'
   Öffnet die .lpk Datei, that belongs to the file in the source editor
   
 - 'Letztes Paket wieder öffnen'
   Öffnet eine vor kurzem geöffnete Package Datei (lpk Datei).
 - 'Aktuelle Unit zu einem Paket hinzufügen'
   Fügt die Unit im Editor zu einem Package hinzu.
   
 - 'Paketgraph'
   Der Paketgraph zeigt alle geöffneten Packages und ihre Abhängigkeiten.
 - 'Installierte Pakete einrichten'
   Edit the list of packages installed in the IDE. Installiert oder deinstalliert verschiedene Packages auf einmal.

Projekt -> Projektinspektor

 Hier können sie alle Packages, die von Projekt verwendet werden, sehen und bearbeiten.

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 (<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.
  • 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/$(TargetCPU)-$(TargetOS)/' 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.