Zum Inhalt springen

„Lazarus Component Library“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
tk k
Zeile 3: Zeile 3:
Die '''Lazarus Component Library''' ('''LCL'''; deutsch ''Lazarus-Komponentenbibliothek'') ist ein plattformübergreifendes [[GUI-Toolkit]] der [[Free Pascal|Free-Pascal]]-[[Integrierte Entwicklungsumgebung|Entwicklungsumgebung]] [[Lazarus (Entwicklungsumgebung)|Lazarus]].
Die '''Lazarus Component Library''' ('''LCL'''; deutsch ''Lazarus-Komponentenbibliothek'') ist ein plattformübergreifendes [[GUI-Toolkit]] der [[Free Pascal|Free-Pascal]]-[[Integrierte Entwicklungsumgebung|Entwicklungsumgebung]] [[Lazarus (Entwicklungsumgebung)|Lazarus]].


Die LCL besteht aus einer Sammlung von [[Unit (Programmiersprache Pascal)|Unit]]s, die [[Komponente (Software)|Komponente]]n und [[Klasse (Objektorientierung)|Klasse]]n insbesondere für visuelle Aufgaben bereitstellen. Sie baut auf den Bibliotheken [[Free Pascal Runtime Library|RTL]] und [[Free Component Library|FCL]] auf.
Die LCL besteht aus einer Sammlung von [[Unit (Programmiersprache Pascal)|Units]], die [[Komponente (Software)|Komponenten]] und [[Klasse (Objektorientierung)|Klassen]] insbesondere für visuelle Aufgaben bereitstellen. Sie baut auf den Bibliotheken [[Free Pascal Runtime Library|RTL]] und [[Free Component Library|FCL]] auf.


== Details ==
== Details ==
Zeile 9: Zeile 9:
Die LCL ermöglicht die Entwicklung von Anwendungen mit nativer [[Grafische Benutzeroberfläche|grafischer Benutzeroberfläche]]. Dies wird durch die Nutzung plattformspezifischer ''Widgetsets'' erreicht, die für die [[Betriebssystem]]e [[Windows]], [[Linux]], [[macOS]] und [[Android (Betriebssystem)|Android]] verfügbar sind. Damit wird es ermöglicht, den Anspruch von Lazarus ''write once, compile anywhere'' umzusetzen.
Die LCL ermöglicht die Entwicklung von Anwendungen mit nativer [[Grafische Benutzeroberfläche|grafischer Benutzeroberfläche]]. Dies wird durch die Nutzung plattformspezifischer ''Widgetsets'' erreicht, die für die [[Betriebssystem]]e [[Windows]], [[Linux]], [[macOS]] und [[Android (Betriebssystem)|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 [[Steuerelement]]e (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 [[Klasse (Objektorientierung)|Klasse]]n bereit, die direkt von der Software angesprochen werden können.
Widgetsets stellen die Schnittstelle für die Anbindung an das jeweilige Betriebssystem einschließlich seiner [[Steuerelement]]e (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 [[Klasse (Objektorientierung)|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 [[Betriebssystem]]e 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.
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 [[Betriebssystem]]e 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.
Zeile 16: Zeile 16:
Derzeit (Herbst 2013) sind die folgenden Widgetsets verfügbar oder in Entwicklung:
Derzeit (Herbst 2013) sind die folgenden Widgetsets verfügbar oder in Entwicklung:


{| class="wikitable sortable" border="1"
{| class="wikitable sortable"
|-
! Widgetset !! Unterstützte Betriebssysteme !! Status
! Widgetset !! Unterstützte Betriebssysteme !! Status
|-
|-
|{{SortKey|Windows}}[[Windows API]], [[Graphics Device Interface|GDI]]|| [[Microsoft Windows|Windows]] ||class="hintergrundfarbe9" |{{SortKey|3}} Stabil, produktiv benutzbar
| [[Windows API]], [[Graphics Device Interface|GDI]]|| [[Microsoft Windows|Windows]] ||class="hintergrundfarbe9" data-sort-value="3"| Stabil, produktiv benutzbar
|-
|-
|{{SortKey|Windows}}Windows CE API, [[Graphics Device Interface|GDI]]||[[Windows CE]] || class="hintergrundfarbe9" |{{SortKey|3}} Stabil, produktiv benutzbar
| Windows CE API, [[Graphics Device Interface|GDI]]||[[Windows CE]] ||class="hintergrundfarbe9" data-sort-value="3"| Stabil, produktiv benutzbar
|-
|-
| [[GTK+]] 1.2.''x'' || [[Linux]] (via [[X11]]) ||class="hintergrundfarbe7" |{{SortKey|1}} Teilweise umgesetzt, veraltet
| [[GTK+]] 1.2.''x'' || [[Linux]] (via [[X11]]) ||class="hintergrundfarbe7" data-sort-value="1"| Teilweise umgesetzt, veraltet
|-
|-
| GTK+ 2.8+ || [[Windows]], [[Linux]] ([[X11]] und framebuffer) und [[macOS]] (via [[X11]])||class="hintergrundfarbe9" |{{SortKey|3}} Stabil, produktiv benutzbar
| GTK+ 2.8+ || [[Windows]], [[Linux]] ([[X11]] und framebuffer) und [[macOS]] (via [[X11]]) ||class="hintergrundfarbe9" data-sort-value="3"| Stabil, produktiv benutzbar
|-
|-
| GTK+ 3.x || [[Windows]], [[Linux]] ([[X11]] und framebuffer) und [[macOS]] (via [[X11]])||class="hintergrundfarbe8" |{{SortKey|2}} In Entwicklung
| GTK+ 3.x || [[Windows]], [[Linux]] ([[X11]] und framebuffer) und [[macOS]] (via [[X11]]) ||class="hintergrundfarbe8" data-sort-value="2"| In Entwicklung
|-
|-
| [[Qt (Bibliothek)|Qt]] 4.5+ || [[Windows]], [[Linux]] ([[X11]] und framebuffer), [[macOS]] ||class="hintergrundfarbe9" |{{SortKey|3}} Stabil, produktiv benutzbar.<br>Verfügbar für Windows, Linux, Mac OS X, Maemo, etc.<br>Software benötigt Zusatzbibliothek.
| [[Qt (Bibliothek)|Qt]] 4.5+ || [[Windows]], [[Linux]] ([[X11]] und framebuffer), [[macOS]] ||class="hintergrundfarbe9" data-sort-value="3"| Stabil, produktiv benutzbar.<br />Verfügbar für Windows, Linux, Mac OS X, Maemo, etc.<br />Software benötigt Zusatzbibliothek.
|-
|-
| [[Cocoa (API)|Cocoa]] || [[macOS]] ||class="hintergrundfarbe8" |{{SortKey|2}} In Entwicklung
| [[Cocoa (API)|Cocoa]] || [[macOS]] ||class="hintergrundfarbe8" data-sort-value="2"| In Entwicklung
|-
|-
| [[Carbon (Apple)|Carbon]] || [[macOS]] ||class="hintergrundfarbe9" |{{SortKey|3}} Stabil, produktiv benutzbar. Von macOS 10.15 Catalina und später aber nicht mehr unterstützt.
| [[Carbon (Apple)|Carbon]] || [[macOS]] ||class="hintergrundfarbe9" data-sort-value="3"| Stabil, produktiv benutzbar. Von macOS 10.15 Catalina und später aber nicht mehr unterstützt.
|-
|-
| [[fpGUI]] || [[Windows]], [[Windows CE]], [[Linux]] (via [[X11]]) ||class="hintergrundfarbe8" |{{SortKey|2}} In Entwicklung
| [[fpGUI]] || [[Windows]], [[Windows CE]], [[Linux]] (via [[X11]]) ||class="hintergrundfarbe8" data-sort-value="2"| In Entwicklung
|-
|-
| [[Lazarus Custom Drawn Controls]] || [[Android (Betriebssystem)|Android]], [[Windows]], [[Linux]] (via [[X11]]), [[macOS]] ||class="hintergrundfarbe8" |{{SortKey|2}} In Entwicklung
| [[Lazarus Custom Drawn Controls]] || [[Android (Betriebssystem)|Android]], [[Windows]], [[Linux]] (via [[X11]]), [[macOS]] ||class="hintergrundfarbe8" data-sort-value="2"| In Entwicklung
|-
|-
| [[Magic User Interface]] || [[MorphOS]] ||class="hintergrundfarbe8" |{{SortKey|2}} In Entwicklung
| [[Magic User Interface]] || [[MorphOS]] ||class="hintergrundfarbe8" data-sort-value="2"| In Entwicklung
|}
|}


== Literatur ==
== 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.
* 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 ==
== Weblinks ==


* [http://wiki.freepascal.org/LCL/de Dokumentation der LCL im Free Pascal Wiki]
* [http://wiki.freepascal.org/LCL/de Dokumentation der LCL] im Free Pascal Wiki
* [http://lazarus-ccr.sourceforge.net/docs/lcl/ Vollständige Online-Referenz]
* [http://lazarus-ccr.sourceforge.net/docs/lcl/ Vollständige Online-Referenz]
* [http://wiki.freepascal.org/Accessing_the_Interfaces_directly Anleitung zum direkten Zugriff auf Widgetsets im Free Pascal Wiki]
* [http://wiki.freepascal.org/Accessing_the_Interfaces_directly Anleitung zum direkten Zugriff auf Widgetsets] im Free Pascal Wiki
* [http://wiki.lazarus.freepascal.org/Widgetset Regelmäßig aktualisierte Übersicht über den Entwicklungsstatus der Widgetsets im Lazarus Wiki]
* [http://wiki.lazarus.freepascal.org/Widgetset Regelmäßig aktualisierte Übersicht über den Entwicklungsstatus der Widgetsets] im Lazarus Wiki


[[Kategorie:Free Pascal]]
[[Kategorie:Free Pascal]]

Version vom 16. April 2020, 22:27 Uhr

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 (Herbst 2013) sind die folgenden Widgetsets verfügbar oder in Entwicklung:

Widgetset Unterstützte Betriebssysteme Status
Windows API, GDI Windows Stabil, produktiv benutzbar
Windows CE API, GDI Windows CE Stabil, produktiv benutzbar
GTK+ 1.2.x Linux (via X11) Teilweise umgesetzt, veraltet
GTK+ 2.8+ Windows, Linux (X11 und framebuffer) und macOS (via X11) Stabil, produktiv benutzbar
GTK+ 3.x Windows, Linux (X11 und framebuffer) und macOS (via X11) In Entwicklung
Qt 4.5+ Windows, Linux (X11 und framebuffer), macOS Stabil, produktiv benutzbar.
Verfügbar für Windows, Linux, Mac OS X, Maemo, etc.
Software benötigt Zusatzbibliothek.
Cocoa macOS In Entwicklung
Carbon macOS Stabil, produktiv benutzbar. Von macOS 10.15 Catalina und später aber nicht mehr unterstützt.
fpGUI Windows, Windows CE, Linux (via X11) In Entwicklung
Lazarus Custom Drawn Controls Android, Windows, Linux (via X11), macOS In Entwicklung
Magic User Interface MorphOS In 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.