Wiki-KopieMirror

Dies ist ein Mirror des Wikis von pascal.chat. Bearbeiten, Verlauf und Anmeldung finden dort statt.

Lazarus Packages/de

Deutsch · English · Español · Français · Português · Slovenčina · Русский · 日本語

Überblick über das Lazarus Package System

Was ist ein Lazarus Package

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 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 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.)

Gegenwärtig unterstützt der 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.

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

Packages sind ideal, um Code zwischen Projekten zu teilen.

Für Entwickler mit Delphi-Erfahrung

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.

FAQ

F: Muss ich ein Package installieren?

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.

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

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.

Schnellstart

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

Erzeugen eines neuen Package:

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

Hinzufügen einer neuen Komponente:

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

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

Erzeugt ein neues Package.

text
 Hier können sie sehen, welche Packages vom aktuell geöffneten Projekt benötigt werden.
 Sie können neue Abhängigkeiten hinzufügen und nichtgenutzte entfernen.
text
 Hier können sie sehen, welche Compilereinstellungen von welchem Package geerbt sind .

Komponenten ->

pascal
 - '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, die zur Datei im Quelltexteditor geh??rt
   
 - 'Letztes Paket wieder öffnen'
   ??ffnet eine vor kurzem ge??ffnete Package Datei (lpk Datei).
pascal
 - '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.
text
 - 'Installierte Pakete einrichten'
   Bearbeitet die Liste der in der IDE installierten Packages. Installiert oder deinstalliert verschiedene Packages auf einmal.

Projekt -> Projektinspektor

text
 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 muss 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'.

Zum Beispiel:

pascal
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.

Zum Beispiel: gtkopengl.compiled:

text
<?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>

Hinweise und Tipps

Bitte fügen sie hier ihre Hinweise, Tipps oder gotchas ein.

Beispiel

pascal
Ich werde das tiOPF Framework als Beispiel verwenden. Das tiOPF hat die
folgende Verzeichnisstrukur, wegen der Tatsache, dass es kompiliert mit FPC,
Delphi 5-7, D2005 und D2006.

Source                <= full path \Programming\3rdParty\tiOPF\Source
 \Compilers
    \Delphi7          <= Delphi 7 Package Dateien befinden sich hier
    \D2005
    \FPC              <= die tiOPF.lpk befindet sich hier
 \Core                <= core Unit Dateien
 \Options             <= optionale Unit Datei f??r zus??tzliche Features
 \GUI

Using this example, I included in the "Options - Usage - Units"
editbox the following paths:
"$(PkgOutDir);..\..\Core;..\..\Options;..\..\GUI" which will be added
to whatever project uses this package.

'Bold textBold text'

Existierende Komponenten zu einem Package hinzufügen

Wenn sie eine Datei, die eine Komponente enthält, zu einem Package hinzufügen wollen, dann können sie folgendes tun:

Das war alles. Die Komponente(n) sollte jetzt in der Komponentenpalette angezeigt werden.

Die Register Prozedur

Um eine Komponente in der Komponenten Palette anzuzeigen, muss sie in Lazarus registriert werden. Dieses geschieht in der 'Register' Procedure. Diese Procedure muss

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.

Es gibt 2 Wege eine Unit zu kennzeichnen, dass sie eine Register procedure hat :

Vergessen Sie nicht das Recompilieren und Installieren des Package nach dem Ändern der Eigenschaften.

Vorstellung der Lazarus Packages

Nachdem bislang über den Umgang mit Packages gesprochen wurde, sollen nun die verfügbaren Packages (kurz) vorgestellt werden.

Zu Lazarus gehörende Packages

cgiLaz

CGILazIDE

CodeTools

DBFLaz

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 TDbf Tutorial.

demopackagewithhelp

FCL

Die Free Pascal Component Library.

fpcunitconcolerunner

fpcunitide

fpcunittestrunner

gtk2interface

h2paswizard

Dieses Package ermöglicht die Verwendung von C-Bibliotheken durch Anpassung der Header-Dateien. Nähere Informationen sind hier zu finden.

IDEIntf

imagesforlazarus

InterbaseLaz

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.

JPEGForLazarus

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.

lazopenglcontext

lazreport

LazReport ist ein Reportgenerator für Lazarus. Zum Funktionieren muss das Package Printer4Lazarus installiert sein.

LCL

Die Lazarus Component Library.

macosfiles

MemDSLaz

popupnotifierlaz

prettyformat

Printer4Lazarus

Dieses Package erweitert Lazarus um Dialoge zum Drucken.

ProjTemplates

RunTimeTypeInfoControls

rx

SDFLaz

semaphorgridlpk

SQLDBLaz

Das vielleicht wichtigste Datenbankpackage. Es stellt Komponenten für den Zugriff auf Firebird, ODBC, Oracle, MySQL und PostgreSQL Datenbanken zur Verfügung.

SynEdit

Dieses Package stellt die Komponenten auf der SynEdit Seite der Komponentenpalette zur Verfügung.

synuni

TAChart

Plotten von Kurven und Daten (TAChart documentation)

trayiconlaz

TurboPowerIPro

Enthält eine Komponente zur Anzeige von HTML-Code (wird auch von der IDE für die Anzeige der Code-Hints benutzt)

Packages von Drittanbietern

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 Seite.

fblib

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 möglich.

lazrichview

Dieses Package stellt Komponenten zur Anzeige, Bearbeitung und Ausdruck von Hypertext Dokumenten bereit. Der Download ist von der Sourceforge Seite möglich. Details zum Package finden sie auf dieser Seite.

packpowerpdf

PowerPDF stellt Komponenten zum Erstellen von PDF Dokumenten zur Verfügung. Der Download ist von der Lazarus CCR Sourceforge Seite möglich. Details zum Package finden sie auf dieser Seite.

Mitwirkende und Kommentare

Die Anfänge dieser Seite stammen aus der epikwiki Version.

Siehe auch


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.

Version 3, zuletzt geändert von WikiArchive .