Lazarus Component Library

Zusammenspiel der Klassenbibliotheken und Widgetsets in Lazarus und Free Pascal

Die Lazarus Component Library (LCL; deutsch Lazarus-Komponentenbibliothek) ist ein plattformübergreifendes GUI-Toolkit der Free-Pascal-Entwicklungsumgebung Lazarus.

Die LCL besteht aus einer Sammlung von Units, die Komponenten und Klassen insbesondere für visuelle Aufgaben bereitstellen. Sie baut auf den Bibliotheken RTL und FCL auf.

Details

Architektur der Lazarus Component Library

Die LCL ermöglicht die Entwicklung von Anwendungen mit nativer grafischer Benutzeroberfläche. Dies wird durch die Nutzung plattformspezifischer Widgetsets erreicht, die für die Betriebssysteme Windows, Linux, macOS und Android verfügbar sind. Damit wird es ermöglicht, den Anspruch von Lazarus write once, compile anywhere umzusetzen.

Widgetsets stellen die Schnittstelle für die Anbindung an das jeweilige Betriebssystem einschließlich seiner Steuerelemente (Widgets) bereit. Üblicherweise ist es nicht erforderlich, das Widgetset direkt anzusprechen, da dies durch die jeweiligen visuellen Komponenten (z. B. TEdit) automatisch geschieht. Dadurch wird gewährleistet, dass plattformunabhängiger Quellcode zu einer plattformnativen Anwendung übersetzt wird. Die Widgetsets stellen jedoch auch Klassen bereit, die direkt von der Software angesprochen werden können.

Die LCL ist mit mehreren hierarchischen Klassensystemen, die miteinander verzahnt sind, unterlegt. Die plattformunabhängige Schicht implementiert Steuerelemente, die im Formulardesigner entworfen werden können und für alle Betriebssysteme definiert werden. Die zugehörigen Komponenten sind von der LCL-Klasse TLCLComponent abgeleitet. Die konkrete Implementierung geschieht dann in einer plattformabhängigen Schicht, welche die abstrakten Basisklassen im LCL-Interface umsetzt und an das jeweilige GUI-Toolkit anbindet.

Verfügbare Widgetsets

Derzeit (Frühjahr 2020) sind die folgenden Widgetsets verfügbar oder in Entwicklung:

WidgetsetUnterstützte BetriebssystemeStatus
Windows API, GDIWindowsStabil, produktiv benutzbar
Windows CE API, GDIWindows CEStabil, produktiv benutzbar
GTK+ 1.2.xLinux (via X11)Teilweise umgesetzt, veraltet
GTK+ 2.8+Windows, Linux (X11 und framebuffer) und macOS (via X11)Stabil, produktiv benutzbar
GTK+ 3.xWindows, Linux (X11 und framebuffer) und macOS (via X11)In Entwicklung
Qt 4.5+Windows, Linux (X11 und framebuffer), macOSStabil, produktiv benutzbar.
Verfügbar für Windows, Linux, Mac OS X, Maemo, etc.
Software benötigt Zusatzbibliothek.
CocoamacOSIn Entwicklung, eingeschränkt produktiv nutzbar
CarbonmacOSStabil, produktiv benutzbar. Von macOS 10.15 Catalina und später aber nicht mehr unterstützt.
fpGUIWindows, Windows CE, Linux (via X11)In Entwicklung
Lazarus Custom Drawn ControlsAndroid, Windows, Linux (via X11), macOSIn Entwicklung
Magic User InterfaceMorphOSIn Entwicklung

Literatur

  • M. Van Canneyt, M. Gärtner, S. Heinig, F. Monteiro de Carvalho, I. Ouedrago. Lazarus – Arbeiten mit IDE und Klassenbibliothek. C&L-Verlag, Böblingen 2010, ISBN 978-3-936546-38-5.

Weblinks

Auf dieser Seite verwendete Medien

LCLArchitecture.png
(c) JC Chu in der Wikipedia auf Englisch, CC BY 3.0
Flow chart of LCL components in Lazarus IDE
Lazarus-Architektur.svg
Autor/Urheber: Jwdietrich2, Lizenz: CC BY-SA 3.0
Übersicht über die Architektur der Klassenbibliotheken und Widgetsets in Lazarus. Abbildung selbst erstellt mit Adobe Illustrator und Inkscape, Inhalt basiert auf der offiziellen Lazarus-Dokumentation und teilweise auf der Abbildung File:LCLArchitecture.png aus der englischen Wikipedia (Autor Chu Jetcheng).