From LQWiki
Lazarus is a cross platform Visual IDE developed for and supported by Free Pascal. It aims to provide a Delphi Clone for Pascal and Object Pascal developers using the open source Free Pascal compiler.
Free Pascal is a GPL'ed compiler that runs on Linux, Win32, OS/2, 68K and more. It is designed to be able to understand and compile Delphi syntax, which is Object Oriented Pascal. Unlike Java which strives to be a write once run anywhere, Lazarus and Free Pascal strives for write once compile anywhere. Since the exact same compiler is available on all of the above platforms it means you don't need to do any recoding to produce identical products for different platforms.
Contents |
Lazarus and UI access
LCL
The Lazarus GUI subsystem is called LCL (Lazarus Component Library), which is basically a set of visual and non visual component classes over a Widget toolkit dependant part. The LCL has been modelled after the Delphi VCL, but is not 100% compatible, and this is by design out of multi-platform considerations.
Interfaces - Widget toolkit dependence
In Lazarus terminology, this part is called simply "the Interface". Actually it's more like one Interface per Widget toolkit.
The current status of Widget toolkit Interface is roughly like this:
- win32 GDI support (win32 native) is in mainstream use.
- GTK+ 1.2.x is in mainstream use (Unix derivates including Mac OS X)
- GTK+ 2.x is under development, and parts are working already. Mostly interesting because of better internationalization and focusing support.
- Qt (3,4) (C++) has headers translated, and the interface is in early development.
- for wxWidgets (C++) there is no header translation yet.
- for wx.net (plain C wrapper for WxWindows), a headertranslation was announced but not publicly available yet. So also no interface yet.
- for Aqua (Mac OS X native toolkit, Objective C) No header translation (via plain C interfaces) yet.
- for Carbon (Mac OS X native toolkit, Objective C), Pascal header translation available and the interface is in early development.
- for Windows CE (for Pocket PC and Smartphones) is working well.
Database support
Lazarus supports several databases out-of-the-box, however the developer must install the adequate packages for each one. The programmer can access the database throught code or by dropping components on a form. The data-aware components represent fields and are connected by the correct setting of properties to a TDataSource, witch represents a table and is also connected to the database components, be it TPSQLDatabase, TSQLiteDataSet or something else.
The following databases are supported out-of-the-box:
- PostgreSQL requires the PSQL package
- dBase and FoxPro can be supported without the need to a external server or library throught the TDbf component
- MySQL works
- SQLite needs only a single external library and the TSqliteDataset component
- MSSQL is working with Zeoslib
- InterBase / Firebird also work with the latest ZeosLib
Cross development
Free Pascal supports crosscompiling, and it has been proven that Lazarus apps can be crosscompiled from Windows to Linux and FreeBSD and vice versa. Compiling from Mac OS X to Windows, Linux and FreeBSD is possible, but not yet the other way around due to binutils issues.
See also
- Free Pascal Compiler
External links
- Lazarus, a RAD for FPC (Download at SourceForge.net (sourceforge.net))
- Lazarus Code and Component Respository (lazarus-ccr.sourceforge.net)
- It is a website aimed at providing documentation to Lazarus developers, in addition to provide help to port VCL (Visual Component Library) to LCL (Lazarus Component Library).
- LCL is an open source clone of VCL/CLX (see more from Delphi), which works with the Free Pascal compiler.
- SeeDelphi to Lazarus Code Conversion Guide (lazarus-ccr.sourceforge.net)
- for more detail.
- The Lazarus Documentation Project (wiki.lazarus.freepascal.org)
- Free Pascal Documentation (www.freepascal.org)

This page is available under a