العربية (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) │
- 1 Lazarus and Pascal Tutorials
- 2 The Lazarus User Guides
- 3 The Lazarus Developer Guides
- 4 Additional Components Documentation
- 5 Free Pascal Compiler Documentation
- 6 Lazarus related blogs and websites
Lazarus and Pascal Tutorials
- Overview of Free Pascal and Lazarus - A brief discussion of kinds of things you can develop with these general-purpose tools.
- Lazarus Tutorial - A tutorial for beginners and a detailed description of the Lazarus IDE.
- Lazarus IDE Tools - An intermediate level tutorial about code completion and other IDE tools.
- Lazarus Database Tutorial - An introduction to using Lazarus with databases.
- Developing with Graphics - Some basic examples on graphic programming.
- Pascal Tutorial - Tao Yue's Pascal Tutorial (reposted with permission).
- Object Oriented Programming with FreePascal and Lazarus - going beyond standard Pascal
- Programming with Objects and Classes - Tutorial for OOP in FPC
- Console Mode Pascal - using the Lazarus IDE for writing Pascal programs for text-mode operation.
- Executing External Programs - A short tutorial showing how to run external programs from inside your program.
- TXMLPropStorage - Using TXMLPropStorage to save user preferences.
- Hardware Access - How to access hardware devices, such as ISA cards, PCI cards, parallel and serial ports and USB devices.
- Networking - Tutorials about TCP/IP protocol, creating secure network programs, WebServices, etc.
- XML Tutorial - Writing and reading XML files
- Multithreaded Application Tutorial - How to write multithreaded applications using Free Pascal and Lazarus
- Manager Worker Threads System - An example of how to design a Manager Worker Thread Application.
- Streaming components - How to write components to streams and read/create components from streams
- OpenGL Tutorial - How to use GLUT in Lazarus
- Creating bindings for C libraries - How to convert C header files (.h) to pascal units
- Lazarus/FPC Libraries - How to create dynamic libraries (.so, .dll, .dylib) and how to use them
- Translations / i18n / localizations for programs - How to provide localized versions of your programs and packages
- Daemons and Services - How to write windows services and/or linux daemons.
- Office Automation - How to interact with office software and create spreadsheets, text documents, presentations, etc.
- Lazarus Inline Assembler - a getting started guide.
- VirtualTreeview Example for Lazarus - Using VirtualTreeview on Lazarus.
- Programando en Pascal - Spanish tutorial focused on FPC/Lazarus, hosted in Wikidot.
- Webbrowser - Webbrowser controls
- Playing videos - How to play videos
The Lazarus User Guides
- Lazarus Faq - General information about Lazarus and specifics for Linux and Windows users.
- Lazarus DB Faq - FAQ on database issues in Lazarus.
- Databases in Lazarus - An overview of using databases in Lazarus
- Code Examples - Example working code for Lazarus.
- Wishlist/Wanted Features - Features that you would like to see in Lazarus
- How do I create a bug report - You think you found a bug in Lazarus, how can you report it?
- Installing Lazarus - An installation guide
- Getting Lazarus - Instructions on how to download a released or SVN version of Lazarus
- Multiple Lazarus - How to install several lazarus versions on one machine
- IDE tricks - Tips, tricks and hidden features
- Lazarus IDE - The IDE windows
- Lazarus IDE Shortcuts - The key mapping and shortcuts.
- Lazarus Packages - A guide for creating a package under Lazarus
- Install Packages - A small guide to install packages
- Extending the IDE - How to add functionality to the Lazarus IDE
- Adding Kylix Help - How to use the Borland Help files within the IDE editor.
- Using Lazarus for other computer languages - How to use the IDE for C, Java, etc.
- IDE Development - Various pages about current development of the IDE.
- Lazarus for education - How to setup the IDE for courses and beginners.
- LCL documentation - On line help for LCL (work in progress).
- LCL Components - Tutorials about the standard LCL components, complements the reference docs
- The LCL in various platforms - A brief discussion about LCL features which behave differently in different platforms.
- Autosize / Layout - How to design forms that work on all platforms.
- Main Loop Hooks - How to handle multiple event sources
- Asynchronous Calls - How to queue methods for later execution
- File size and smartlinking - How to smartlink applications and create smaller executables.
- Accessing the Interfaces directly - Example how to access the LCL widgetsets
- Add Help to Your Application - How to create a Online Help for your application
- Anchor Sides - Description of Anchor Sides Feature
- LCL Tips - Tips and tricks
- LCL Defines - Choosing the right options to recompile LCL
- The Power of Proper Planning and Practices - common-sense programming best practices for the Free Pascal and Lazarus developer
- Multiplatform Programming Guide - How to develop cross-platform applications and how to port from one platform to another
- Deploying Your Application - How to create an installer for your application
- Cross compiling - Creating executables for one platform, on another
- GDB Debugger Tips - Known Issues / Tips for debugging Pascal using GDB
- Remote Debugging - How to debug your Lazarus application from another machine
- Application Icon - Setting the application icon
- Using Pascal Libraries with .NET and Mono - yes, you can use your Pascal code with .NET and Mono
- Pascal and PHP - the Pascal connection to PHP
- Developing Python Modules with Pascal - extending Python with Pascal
Platform specific Tips
- OS X Programming Tips - Lazarus installation, useful tools, Unix commands, and more...
- Windows Programming Tips - Desktop Windows programming tips...
- WinCE Programming Tips - Using the telephone API, sending SMSes, and more...
- Lazarus Documentation Editor - Using "lazde" to create documentation
- LazDoc - An integrated editor for documentation files
- FPDoc Updater - A GUI tool for updating FPDoc files
- lazbuild - Compiling projects and packages without the IDE
- LazSVNPkg - Lazarus SVN IDE Plugin
Coming from Delphi
- Lazarus Components - Comparison between Lazarus and Turbo Delphi components
- Lazarus For Delphi Users - For Delphi users who are getting started with Lazarus
- Code Conversion Guide - How to convert existing code and components from Delphi and Kylix
The Lazarus Developer Guides
- Lazarus Development Process - Roadmaps, ideas, current development
- How To Help Developing Lazarus - A guide to help newbies start improving Lazarus
- Version Numbering - Explanation of the different version numbers of Lazarus
- Creating a Patch - A guide to making a patch with changes made to Lazarus
- Creating a Backtrace with GDB - A guide to making a backtrace to help you debug a program
- Nomenclature - Guide to choose a name for a new method or property
- Design Guide Lines - A guide about how to proceed when changing Lazarus Source Code.
- GUI design - Notes on guidelines when designing the lazarus GUI
- Roadmap - An idea of the current status of the various parts of Lazarus
- Road To 1.0 - What needs to be done for Lazarus 1.0 and To Do lists
- Moderating the bug tracker - Guidelines for lazarus developers and moderators for using the bug tracker.
- Codetools - How the codetools are integrated into the IDE
- Creating IDE Help - How to extend the IDE documentation
- Unit not found - How to find units - How to setup the IDE and source files
- Bounties - Need a particular new feature soon? Set a price here.
LCL - Lazarus component library
- LCL Messages - Guide related to LCL Messages
- LCL Internals - Some info about the inner workings of the LCL
- 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
- 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.
- Getting translation strings right A few notes for programmers on how to create and use translateable strings in your application. Quickly discusses general things about creating strings, offers a few hints on implementation issues and points out some things to consider when using English as base language in particular.
- Localization Notes:
- 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
Additional Components Documentation
- Pascal Script and Pascal Script Examples - How to use the pascal script components in Lazarus
- OpenGL - How to use OpenGL in Lazarus
- KOL-CE - Free Pascal/Lazarus port of KOL&MCK library. How to create very compact applications for Win32/WinCE in Lazarus.
Free Pascal Compiler Documentation
In addition to this site, the latest version of the documentation can also be found online and in a variety of downloadable formats on the main Free Pascal Compiler site. There is now also a WiKi site for FreePascal  very similar in style to this one, to allow developers to submit documentation in addition to the official FPC documents below.
- User's guide
- Programmer's guide
- Reference guide for the system unit, and supported Pascal constructs
- Run-Time Library reference manual
- Free Component Library reference manual
- Free Pascal documentation tool manual
- Build messages
- Lazarus Development - A blog of lazarus developers regards development process.
- Adventures of a Newbie - A blog of a newbie getting started with some tutorial information in a running log.
- On the road with Lazarus/Freepascal - A blog dedicated to register my experiences while programming with Lazarus and Freepascal (by Luiz Américo)
- Porting to Lazarus - This blog describes the porting of a medium-sized application (~100 kloc) from D7 with CLX to Lazarus (by Alexsander da Rosa)
- Living Lazarus - One mans exploration into the possibilities of an open source RAD (by Wibblytim).
- Bee.ography just (another) Bee’s buzz!
- Parallel Pascal Worlds Donald Shimoda.