Lazarus Component Library
The LCL enables the development of applications with a native graphical user interface . This is achieved by the use of platform-specific widgetsets reached, for the operating systems Windows , Linux , macOS and Android are available. This makes it possible to implement the claim of Lazarus write once, compile anywhere .
Widgetsets provide the interface for the connection to the respective operating system including its control elements (widgets). Usually it is not necessary to address the widget set directly, as this is done automatically by the respective visual components (e.g. TEdit ). This ensures that platform-independent source code is translated to a platform-native application. However, the widget sets also provide classes that can be addressed directly by the software.
The LCL is based on several hierarchical class systems that are interlinked with one another. The platform-independent layer implements controls that can be designed in the form designer and that are defined for all operating systems . The associated components are derived from the LCL class TLCLComponent . The concrete implementation then takes place in a platform-dependent layer, which implements the abstract basic classes in the LCL interface and connects them to the respective GUI toolkit .
Available widget sets
The following widget sets are currently (spring 2020) available or in development:
|Widget set||Supported Operating Systems||status|
|Windows API , GDI||Windows||Stable, productive usable|
|Windows CE API, GDI||Windows CE||Stable, productive usable|
|GTK + 1.2. x||Linux (via X11 )||Partly implemented, outdated|
|GTK + 2.8+||Windows , Linux ( X11 and framebuffer) and macOS (via X11 )||Stable, productive usable|
|GTK + 3.x||Windows , Linux ( X11 and framebuffer) and macOS (via X11 )||In development|
|Qt 4.5+||Windows , Linux ( X11 and framebuffer), macOS||Stable, productive usable.
Available for Windows, Linux, Mac OS X, Maemo, etc.
Software requires additional library.
|Cocoa||macOS||In development, limited productive use|
|Carbon||macOS||Stable, productive usable. Not supported by macOS 10.15 Catalina and later.|
|fpGUI||Windows , Windows CE , Linux (via X11 )||In development|
|Lazarus Custom Drawn Controls||Android , Windows , Linux (via X11 ), macOS||In development|
|Magic user interface||MorphOS||In development|
- M. Van Canneyt, M. Gärtner, S. Heinig, F. Monteiro de Carvalho, I. Ouedrago. Lazarus - Working with IDE and class library . C & L-Verlag, Böblingen 2010, ISBN 978-3-936546-38-5 .
- Documentation of the LCL in the Free Pascal Wiki
- Full online reference
- Instructions for direct access to widgetsets in the Free Pascal Wiki
- Regularly updated overview of the development status of the widget sets in the Lazarus Wiki