fpGUI Interface
Deutsch (de) | English (en) | Français (fr)
Contents |
Introduction
fpGUI is a widgetset completely written in Object Pascal. It links directly with the underlying windowing system, and thus avoids the need for many external libraries. More information on its website: http://fpgui.sourceforge.net
Other Interfaces
- Lazarus known issues (things that will never be fixed) - A list of interface compatibility issues
- Win32/64 Interface - The winapi interface for Windows 95/98/Me/2K/XP/Vista, but not CE
- Windows CE Interface - For Pocket PC and Smartphones
- Carbon Interface - The Carbon interface for Mac OS X
- Cocoa Interface - The Cocoa interface for Mac OS X
- Qt Interface - The Qt 4 interface for Unixes, Mac OS X, Windows, and Linux-based PDAs
- GTK1 Interface - The gtk1 interface for Unixes, Mac OS X, Windows
- GTK2 Interface - The gtk2 interface for Unixes, Mac OS X, Windows
- fpGUI Interface - Based on the fpGUI library, which is a cross-platform toolkit completely written in Object Pascal
- Custom Drawn Interface - A cross-platform LCL backend written completely in Object Pascal inside Lazarus. The Lazarus interface to Android.
Platform specific Tips
- Windows Programming Tips - Desktop Windows programming tips.
- Linux Programming Tips - How to execute particular programming tasks in Linux
- OS X Programming Tips - Lazarus installation, useful tools, Unix commands, and more...
- WinCE Programming Tips - Using the telephone API, sending SMSes, and more...
- Android Programming - For Android smartphones and tablets
- iPhone/iPod development - About using Objective Pascal to develop iOS applications
Interfaces Development Articles
- Carbon interface internals - If you want to help improving the Carbon interface
- Windows CE Development Notes - For Pocket PC and Smartphones
- Adding a new interface - How to add a new widget set interface
- LCL Defines - Choosing the right options to recompile LCL
- LCL Internals - Some info about the inner workings of the LCL
Creating your first LCL application with fpGUI
This is a step-by-step guide to build your first application with the fpGUI widgetset
1. Download the latest Lazarus from subversion and build it (not necessary if you downloaded a pre-compiled snapshot)
2. Download fpGUI source code from the SourceForge.net Git repository as follows:
git clone git://fpgui.git.sourceforge.net/gitroot/fpgui/fpgui
3. Now we need to make the Lazarus LCL find the fpGUI code. We have two options:
- 3.1. Supported on all platforms. Copy two directories and one file from the downloaded fpgui to lazarus
<fpGUI dir>/src/gui ⇒ lazarus/lcl/interfaces/fpgui/gui <fpGUI dir>/src/corelib ⇒ lazarus/lcl/interfaces/fpgui/corelib <fpGUI dir>/src/VERSION_FILE.inc ⇒ lazarus/lcl/interfaces/fpgui/VERSION_FILE.inc
- 3.2. Linux or any other Unix type platforms. Create symbolic links from the fpGUI's corelib, gui directories and VERSION_FILE.inc to the Lazarus LCL directory as follows:
ln -s <fpGUI dir>/src/gui lazarus/lcl/interfaces/fpgui/gui ln -s <fpGUI dir>/src/corelib lazarus/lcl/interfaces/fpgui/corelib ln -s <fpGUI dir>/src/VERSION_FILE.inc lazarus/lcl/interfaces/fpgui/VERSION_FILE.inc
4. Open Lazarus, open the menu Tools-->"Configure Build Lazarus", select all options to None and LCL to Build+Clean, select fpGUI widgetset and rebuild it.
5. Go to the menu Compiler Options, select fpGUI as the widgetset and you can recompile your project to fpGUI =)
Implementation details
Component mapping
This is a table indication which FPGUI controls are used to build each LCL control.
| LCL Control | FPGUI Control | Comments |
|---|---|---|
| TPageControl | TfpgPageControl | - |
| TButton | TfpgButton | - |
| TBitBtn | TfpgButton | fpGUI's standard button class supports images. |
| TSpeedButton | TfpgButton | fpGUI's standard button class supports images and flat look etc. |