العربية (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) │
Lazarus and Pascal Tutorials
- File Handling In Pascal - Basic file handling for pascal beginners.
- 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 and links to other database articles.
- Developing with Graphics - Some basic examples on graphic programming.
- Object Oriented Programming with Free Pascal and Lazarus - Programming with Objects and Classes 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.
- Web Programming and Networking - Tutorials about TCP/IP protocol, WebServices and links to web development articles.
- XML Tutorial - Writing and reading XML files
- Multithreaded Application Tutorial - How to write multithreaded applications using Free Pascal and Lazarus
- 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.
- Webbrowser - Webbrowser controls
- Playing videos - How to play videos
- These are only the main tutorials. For more Lazarus/FPC tutorials see More Lazarus/FPC Tutorials
- For tutorial about the Pascal language see Lazarus Documentation#Lazarus related blogs and websites
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
- 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?
- Getting Lazarus - Brief instructions on how to download and install a released or SVN version of Lazarus
- Installing Lazarus - A detailed installation guide
- 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
- Installing Help in the IDE - How to install help for the RTL, FCL and LCL in the IDE, as well as installing the Kylix help files in it and also adding help for user packages.
- 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.
- Lazarus Hacks - Customizations and hacks that can adapt the IDE and LCL to specific needs.
- 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
- Colors - Description of system colors like clDefault, clWindow and the fpImage FPColor
- LCL Tips - Tips and tricks
- LCL Defines - Choosing the right options to recompile LCL
- LCL Components - A description of the main LCL controls which come installed with Lazarus, such as TMainMenu, TButton, TComboBox, TTimer, etc.
- LCL Code Examples - Example working code for Lazarus.
- 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
- Developing Web Apps with Pascal - yes, you can write Rich Internet Applications (RIA) with Pascal
- Smartphone Development - About using FPC and Lazarus to target various smartphones
- Lazarus Components Directory - A description of extra packages which are shipped with Lazarus, such as support for printers, fpWeb, daemons, etc
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
- FPDoc Editor - 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 Subversion 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, ToDos, current development and what needs to be done for Lazarus 1.0
- 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
- 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 - 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
- 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
- Project Templates - the package projtemplates
- 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
- 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/Free Pascal - A blog dedicated to register my experiences while programming with Lazarus and Free Pascal (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 man's exploration into the possibilities of an open source RAD (by Wibblytim).
- Bee.ography just (another) Bee’s buzz!
- Parallel Pascal Worlds Donald Shimoda.
- swainbrain pascal wiki - unique free pascal tutorials and info swainbrain
- Programando en Pascal - Spanish tutorial focused on FPC/Lazarus, hosted in Wikidot.
- Pascal Tutorial Wiki version - Tao Yue's Pascal Tutorial (reposted with permission).
- Pascal Tutorial - Tao Yue's Pascal Tutorial (reposted with permission).