Lazarus Component Library
The Lazarus Component Library ( LCL ; German Lazarus Component Library ) is a cross-platform GUI toolkit of Free Pascal - development environment Lazarus .
The LCL consists of a collection of units that provide components and classes, especially for visual tasks. It is based on the RTL and FCL libraries .
Details
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 |
literature
- 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 .
Web links
- 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