Lazarus Component Library

from Wikipedia, the free encyclopedia
Interaction of the class libraries and widget sets in Lazarus and Free Pascal

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 .


Architecture of the 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 .

Web links