Professional Documents
Culture Documents
│ ( اﻟﻌﺮﺑﯿﺔar) │ Deutsch (de) │ English (en) │ español (es) │ suomi (fi) │ français (fr) │ magyar (hu) │
Bahasa Indonesia (id) │ italiano (it) │ ⽇本語 (ja) │ 한국어 (ko) │ Nederlands (nl) │ português (pt) │
русский (ru) │ slovenčina (sk) │ Türkçe (tr) │ 中⽂(中国⼤陆) (zh_CN) │ 中⽂(台灣) (zh_TW) │
Contents
▪ 1 Lazarus and Pascal Tutorials
▪ 1.1 Lazarus/FPC (Free Pascal)
▪ 1.2 Hardware, Threads and Processes
▪ 1.3 Files
▪ 1.4 Web
▪ 1.5 Platforms
▪ 2 The Lazarus User Guides
▪ 2.1 Installation
▪ 2.2 IDE
▪ 2.3 LCL
▪ 2.4 Developing
▪ 2.5 Tools
▪ 2.6 Coming from Delphi
▪ 3 The Lazarus Developer Guides
▪ 3.1 LCL - Lazarus component library
▪ 3.2 Interfaces
▪ 3.3 Translating/Internationalization/Localization
▪ 4 Additional Components Documentation
▪ 5 Free Pascal Compiler Documentation
▪ 6 Special Topics
▪ 7 Lazarus related blogs, websites, videos, magazines and books
▪ 7.1 Blogs
▪ 7.2 Websites
▪ 7.3 Videos
▪ 7.4 Books
▪ 8 Conferences on Lazarus and Free Pascal
▪ 9 How to cite in scientific publications
▪ 10 Missing documentation?
▪ 11 See also
▪ Creating bindings for C libraries - How to convert C header files (.h) to pascal units
▪ Console Mode Pascal - Using the Lazarus IDE for writing Pascal programs for
text-mode operation.
▪ Daemons and Services - How to write windows services and/or linux daemons.
▪ Databases - An introduction to using databases in Lazarus and links to other
database articles.
▪ Developing with Graphics - Examples on 2D & 3D graphic programming.
▪ Form Tutorial - A tutorial for beginners on how to deal with forms.
▪ Free Pascal for Visual Basic users
▪ Lazarus Database Tutorial - A tutorial which has some more background
information on how to connect to popular databases, for example MySQL, Firebird,
Postgres, etc.
▪ Lazarus integrated .chm help file system for manual copying into .../chm
subdirectory, download here (http://www.stack.nl/~marcov/doc-chm.zip). Both for
Lazarus and fp text mode IDE.
▪ Lazarus IDE Tools - An intermediate level tutorial about code completion and other
IDE tools.
▪ Lazarus Inline Assembler - A getting started guide.
▪ Lazarus/FPC Libraries - How to create dynamic libraries (.so, .dll, .dylib) and how
to use them
▪ Lazarus Tutorial - A tutorial for beginners and a detailed description of the Lazarus
IDE.
▪ Multimedia Programming - How to play videos and sounds.
▪ Office Automation - How to interact with office software and create spreadsheets,
text documents, presentations, etc.
▪ OpenGL Tutorial - How to use OpenGL in Lazarus applications.
▪ Overview of Free Pascal and Lazarus - A brief discussion of kinds of things you
can develop with these general-purpose tools.
▪ spelling - How to use the Hunspell library in a Lazarus App.
▪ SQLdb Tutorial0 - Set up instructions for sample data for the following database
tutorials
▪ SQLdb Tutorial1 - A tutorial that teaches you to get up and running with Lazarus
visual components and databases
▪ SQLdb Tutorial2 - Second part of the DB tutorial series, showing editing, inserting
etc.
▪ SQLdb Tutorial3 - Third part of the DB tutorial series, showing how to program for
multiple databases and use a login form
▪ SQLdb Tutorial4 - Fourth part of the DB tutorial series, showing how to use data
modules
▪ SqlDBHowto - Explanations and code for various aspects of using SQLdb for
reading and manipulating data in relational databases
▪ Translations / i18n / localizations for programs - How to provide localized versions
of your programs and packages
▪ VirtualTreeview Example for Lazarus - Using VirtualTreeview on Lazarus.
▪ Working With TSQLQuery - An in depth description of using TSQLQuery, having
details about using parameters in queries and non-SELECT-queries
Files
▪ File Handling In Pascal - Basic explanations on the use of files, for beginners in
pascal.
▪ TXMLPropStorage - Using TXMLPropStorage to save user preferences.
▪ XML Tutorial - Writing and reading XML files.
▪ Using INI Files - How to work with INI files in pascal.
Web
▪ Web Development Portal - How to develop web applications with Lazarus and
Free Pascal.
▪ Webbrowser - Webbrowser controls
▪ Web Programming and Networking - Tutorials about TCP/IP protocol,
WebServices and links to web development articles.
Platforms
Installation
IDE
LCL
The Lazarus component library (LCL) is very similar to Delphi's VCL (Visual Component
Library). Most Lazarus units, classes and properties have the same name and
functionality as their equivalents in Delphi. This makes porting Delphi applications to
Lazarus relatively easy.
Developing
Tools
The following articles go deeper into developing for/with the LCL. See also the user
LCL section above.
▪ How To Write Lazarus Component - A helpful guide to creating your first LCL
component.
▪ LCL Messages - Guide related to LCL Messages
▪ LCL Internals - Implementation details and how to create a new widgetset
▪ LCL Key Handling - Help! A key press, what now?
▪ LCL Internals - Resizing, Moving - How the LCL communicates with the LCL
interface to resize, move controls
▪ LCL Drag Drop - Managing dragging, dropping and docking
▪ LCL Unicode Support - Road to Unicode enabled Lazarus
▪ LCL Documentation Roadmap - Which units have to be documented
▪ LCL Bindings - Bindings to use LCL on other languages
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.
Translating/Internationalization/Localization
These articles cover how to set up the IDE, LCL and your own programs with
translated/localized strings, and how to internationalize them (e.g. deal with date
formats, decimal separators etc) :
▪ German - Notes and guidelines for translating the Lazarus IDE to German,
including a small dictionary to look up often used translations.
▪ Portuguese-Brazilian - Small dictionary containing common translations of
terms used in the Lazarus IDE for the Portuguese-Brazilian translation.
▪ Russian - Notes and guidelines for translating the Lazarus IDE into Russian.
▪ Add language bar explains how you can add a list of translations to the top of a
wiki page.
▪ Translating the IDE
Special Topics
▪ Databases
▪ SciTech Portal - Lazarus and Free Pascal for Science, medicine and technology.
These websites cover Free Pascal, Lazarus or both - or they cover Delphi concepts that
are applicable to Lazarus/FPC:
Chinese:
French:
Spanish:
Videos
Books
Missing documentation?
If you miss documentation for Lazarus or Free Pascal, you can always write it yourself
and submit it to the Lazarus/FPC bugtracker for inclusion. Have a look at:
▪ FPDoc Editor Built-in documentation editor in Lazarus. Page explains how to get
fpdoc help sources and write your own help.
See also
▪ FPC Wiki Documentation