fpGUI Interface/es
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
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 Windows API (formerly Win32 API) interface for Windows 95/98/Me/2000/XP/Vista/10, but not CE
- Windows CE Interface - For Pocket PC and Smartphones
- Carbon Interface - The Carbon 32 bit interface for macOS (deprecated; removed from macOS 10.15)
- Cocoa Interface - The Cocoa 64 bit interface for macOS
- Qt Interface - The Qt4 interface for Unixes, macOS, Windows, and Linux-based PDAs
- Qt5 Interface - The Qt5 interface for Unixes, macOS, Windows, and Linux-based PDAs
- GTK1 Interface - The gtk1 interface for Unixes, macOS (X11), Windows
- GTK2 Interface - The gtk2 interface for Unixes, macOS (X11), Windows
- GTK3 Interface - The gtk3 interface for Unixes, macOS (X11), 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
- Android Programming - For Android smartphones and tablets
- iPhone/iPod development - About using Objective Pascal to develop iOS applications
- FreeBSD Programming Tips - FreeBSD programming tips
- Linux Programming Tips - How to execute particular programming tasks in Linux
- macOS Programming Tips - Lazarus tips, useful tools, Unix commands, and more...
- WinCE Programming Tips - Using the telephone API, sending SMSes, and more...
- Windows Programming Tips - Desktop Windows programming tips
Interface 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
- Cocoa Internals - Some info about the inner workings of the Cocoa widgetset
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. |