fpGUI Interface
From Lazarus-ccr
Deutsch (de) English (en) Français (fr)
Contents |
[edit] 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://opensoft.homeip.net/fpgui/
[edit] 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
- GTK1 Interface - The gtk1 for Unixes, Mac OS X, Windows
- GTK2 Interface - The gtk2 for Unixes, Mac OS X, Windows
- Carbon Interface - The Carbon Interface for Mac OS X
- Qt Interface - The Qt 4 Interface for Unixes, Mac OS X and linux-based PDAs
- Windows CE Interface - For Pocket PC and Smartphones
- fpGUI Interface - A widgetset completely written in Object Pascal
- Cocoa Interface - The Cocoa Interface for Mac OS X
[edit] Platform specific Tips
- OS X Programming Tips - Lazarus installation, useful tools, Unix commands, and more...
- WinCE Programming Tips - Using the telephone API, sending SMSes, and more...
- Windows Programming Tips - Desktop Windows programming tips.
[edit] 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
[edit] 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 from SubVersion with this command (you can also use TortoiseSVN to do this):
svn co https://fpgui.svn.sourceforge.net/svnroot/fpgui/trunk 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 from the downloaded fpgui to lazarus
<fpGUI dir>/src/gui ⇒ lazarus/lcl/interfaces/fpgui/gui <fpGUI dir>/src/corelib ⇒ lazarus/lcl/interfaces/fpgui/corelib
- 3.2. Linux or any other Unix type platforms. Create symbolic links from the fpGUI's corelib and gui directories 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
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 =)
[edit] Implementation details
[edit] 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. |
