Lazarus Documentation
From Lazarus wiki
Jump to navigationJump to searchThe printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
│
العربية (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
- 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?
Installation
- 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
- 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
- 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
Developing
- 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...
Tools
- 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
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.
Translations
- 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 [1] 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
Blogs
- 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.
Websites
- swainbrain pascal wiki - unique free pascal tutorials and info swainbrain