Difference between revisions of "Lazarus Documentation"
From Lazarus wiki
Jump to navigationJump to search (Blanked the page) |
|||
Line 1: | Line 1: | ||
+ | {{Lazarus Documentation}} | ||
+ | ==Lazarus and Pascal Tutorials== | ||
+ | |||
+ | *[[Object Pascal Tutorial]] | ||
+ | *[[More Lazarus/FPC Tutorials]] - These are only the main tutorials. This other page shows more Lazarus/FPC tutorials. | ||
+ | *There are also other tutorials not hosted here in [[Lazarus Documentation#Lazarus related blogs, websites, videos, magazines and books]]. | ||
+ | *[[:Category:Tutorials|Assorted Tutorials]] - Collection of tutorials with difficulty ranging from beginner to expert level | ||
+ | *[http://www.schoolfreeware.com/Free_Pascal_Tutorials.html SchoolFreeware's FreePascal Tutorials] - From command line interface (CLI) to graphical user interface (GUI) using Lazarus IDE | ||
+ | |||
+ | === Lazarus/FPC === | ||
+ | *[[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. | ||
+ | *[[Developing with Graphics]] - Examples on 2D & 3D graphic programming. | ||
+ | *[[OpenGL Tutorial]] - How to use OpenGL in Lazarus applications. | ||
+ | *[[Multimedia Programming]] - How to play videos and sounds. | ||
+ | *[[Office Automation]] - How to interact with office software and create spreadsheets, text documents, presentations, etc. | ||
+ | *[[Lazarus/FPC Libraries]] - How to create dynamic libraries (.so, .dll, .dylib) and how to use them | ||
+ | *[[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. | ||
+ | *[[Lazarus Inline Assembler]] - A getting started guide. | ||
+ | *[[Databases]] - An introduction to using databases in Lazarus and links to other database articles. | ||
+ | *[[SQLdb Tutorial1]] - A tutorial that teaches you to get up and running with Lazarus visual components and databases | ||
+ | *[[SqlDBHowto]] - Explanations and code for various aspects of using SQLdb for reading and manipulating data in relational databases | ||
+ | *[[Lazarus Database Tutorial]] - A tutorial which has some more background information on how to connect to popular databases, for example MySQL, Firebird, Postgres, etc. | ||
+ | *[[Working With TSQLQuery]] - An in depth description of using TSQLQuery, having details about using parameters in queries and non-SELECT-queries | ||
+ | *[[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. | ||
+ | *[[VirtualTreeview Example for Lazarus]] - Using VirtualTreeview on Lazarus. | ||
+ | |||
+ | === Hardware, Threads and Processes === | ||
+ | *[[Using the printer]] - Printer support in Lazarus | ||
+ | *[[Hardware Access]] - How to access hardware devices, such as ISA cards, PCI cards, parallel and serial ports and USB devices. | ||
+ | *[[Multithreaded Application Tutorial]] - How to write multithreaded applications using Free Pascal and Lazarus. | ||
+ | *[[Executing External Programs]] - A short tutorial showing how to run external programs from inside your program. | ||
+ | *[[LazDeviceAPIs]] - A LCL unit which offers an interface to various hardware devices such as the Accelerometer, SMS sending, GPS positioning, etc. | ||
+ | |||
+ | === 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 === | ||
+ | *[[Webbrowser]] - Webbrowser controls | ||
+ | *[[Networking|Web Programming and Networking]] - Tutorials about TCP/IP protocol, WebServices and links to web development articles. | ||
+ | |||
+ | ===Platform specific Tips=== | ||
+ | *[[Windows Programming Tips]] - Desktop Windows programming tips. | ||
+ | *[[Linux Programming Tips]] - Linux programming tips. | ||
+ | *[[OS X Programming Tips]] - Lazarus installation, useful tools, Unix commands, and more... | ||
+ | *[[WinCE Programming Tips]] - Using the telephone API, sending SMSes, and more... | ||
+ | *[[Android Programming]] - For Android smartphones and tablets | ||
+ | *[[iPhone/iPod development]] - About using Objective Pascal to develop iOS applications | ||
+ | |||
+ | ==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. | ||
+ | *[[Feature Ideas|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=== | ||
+ | *[[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=== | ||
+ | *[[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. | ||
+ | *[[startlazarus]] - How the IDE is started. | ||
+ | *[[Unit not found - How to find units]] - Explains how the compiler and the IDE searches for units and how this can fail. | ||
+ | |||
+ | ===LCL=== | ||
+ | *[[doc:lcl/|LCL documentation]] - On line help for LCL (work in progress). | ||
+ | *[[LCL Components]] - Tutorials about the standard LCL components such as TMainMenu, TButton, TComboBox, TTimer, etc. Complements and links to 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 | ||
+ | *[[Components_and_Code_examples|LCL Code Examples]] - Example working code for Lazarus. | ||
+ | *[[Lazarus Custom Drawn Controls]] - A set of custom drawn controls in Lazarus | ||
+ | *[[How To Write Lazarus Component]] - A helpful guide to creating your first LCL component. | ||
+ | *[[LCL Accessibility]] - Documentation about using making LCL applications accessible | ||
+ | |||
+ | ===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 | ||
+ | *[[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 | ||
+ | |||
+ | === Tools === | ||
+ | *[[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 | ||
+ | *[[InstantFPC]] - run pascal programs as normal unix scripts | ||
+ | |||
+ | ===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 | ||
+ | *[[Delphi Converter in Lazarus]] - Convert a Delphi unit, project or package almost automatically | ||
+ | |||
+ | ==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| 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 | ||
+ | *[[DesignGuidelines|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 [http://www.freepascal.org/mantis/ bug tracker]. | ||
+ | *[[Codetools]] - How the codetools are integrated into the IDE | ||
+ | *[[Creating IDE Help]] - How to extend the IDE documentation | ||
+ | *[[Distributing Lazarus - Installers]] - Hints and notes for packagers who want to write an installer for Lazarus | ||
+ | *[[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 | ||
+ | |||
+ | ===Interfaces=== | ||
+ | {{Interfaces}} | ||
+ | |||
+ | ===Translations=== | ||
+ | * [[Translations_/_i18n_/_localizations_for_programs|Translations / i18n / localizations for programs]] How to translate your application and how to load translated resourcestrings of projects and packages in your application. | ||
+ | * [[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 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 Localization Notes|Portuguese-Brazilian]] - Small dictionary containing common translations of terms used in the Lazarus IDE for the Portuguese-Brazilian translation. | ||
+ | :* [[Russian localization notes|Russian]] - Notes and guidelines for translating the Lazarus IDE into Russian. | ||
+ | <!-- *[[TO-DO]] Remaining Tasks --> | ||
+ | * [[Help:Add language bar | Add language bar]] explains how you can add a list of translations to the top of a wiki page. | ||
+ | *[[Translations_/_i18n_/_localizations_for_programs#Translating_the_IDE|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. | ||
+ | *[[TAChart documentation]] - Standard component for drawing graphs and charts. | ||
+ | *[[How To Write Lazarus Component]] for more component info | ||
+ | |||
+ | ==Free Pascal Compiler Documentation== | ||
+ | In addition to [http://lazarus-ccr.sourceforge.net/fpcdoc/ this site], the latest version of the documentation can also be found on-line and in a variety of downloadable formats on the main [http://www.freepascal.org/docs.html Free Pascal Compiler site]. | ||
+ | |||
+ | *[http://lazarus-ccr.sourceforge.net/fpcdoc/user/user.html User's guide] | ||
+ | *[http://lazarus-ccr.sourceforge.net/fpcdoc/prog/prog.html Programmer's guide] | ||
+ | *[http://lazarus-ccr.sourceforge.net/fpcdoc/ref/ref.html Reference guide for the system unit, and supported Pascal constructs] | ||
+ | *[http://lazarus-ccr.sourceforge.net/fpcdoc/rtl/index.html Run-Time Library reference manual] | ||
+ | *[http://lazarus-ccr.sourceforge.net/fpcdoc/fcl/index.html Free Component Library reference manual] | ||
+ | *[http://lazarus-ccr.sourceforge.net/fpcdoc/fpdoc/fpdoc.html Free Pascal documentation tool manual] | ||
+ | *[[Build messages]] | ||
+ | |||
+ | ==Lazarus related blogs, websites, videos, magazines and books== | ||
+ | |||
+ | ===Blogs=== | ||
+ | |||
+ | *[http://lazarus-dev.blogspot.com/ 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. | ||
+ | *[http://lazarusroad.blogspot.com/ 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) | ||
+ | *[http://port2laz.blogspot.com/ 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) | ||
+ | *[http://living-lazarus.blogspot.com/ Living Lazarus] - One man's exploration into the possibilities of an open source RAD (by [[User:Wibblytim|Wibblytim]]). | ||
+ | *[http://beeography.wordpress.com/tag/object-pascal/ Bee.ography] just (another) Bee’s buzz! | ||
+ | *[http://donaldshimoda.blogspot.com/ Parallel Pascal Worlds] Donald Shimoda. | ||
+ | *[http://devblog.brahmancreations.com/content/observations-on-freepascal-and-lazarus-development Observations on FreePascal and Lazarus Development] | ||
+ | *[http://www.lazarussupport.com/lazarus/weblog Lazarussupport] - A blog about Lazarus and Free Pascal in general - Joost van der Sluis | ||
+ | |||
+ | ===Websites=== | ||
+ | |||
+ | *[http://mercury.it.swin.edu.au/swinbrain/index.php/Pascal#Pascal_Development_Tools Pascal - SwinBrain] - Unique free pascal tutorial and documentation at Swinburne University | ||
+ | *[http://aprendepascal.wikidot.com Programando en Pascal] - Spanish tutorial focused on FPC/Lazarus, hosted in Wikidot. | ||
+ | *[http://sheepdogguides.com/lut/ Lazarus Programming Tutorials] | ||
+ | *[[Object Pascal Tutorial]] ''Wiki version'' - [http://www.taoyue.com/ Tao Yue's] [http://www.taoyue.com/tutorials/pascal/ Pascal Tutorial] (reposted with permission). | ||
+ | *[http://www.fpccn.com/ Community for Free Pascal and Lazarus in Chinese.] - Community, forums, source code and demos in Chinese. | ||
+ | *[http://pascal.developpez.com/ Pascal - Club d'entraide des développeurs francophones] - Francophone community about Pascal. | ||
+ | |||
+ | ===Videos=== | ||
+ | |||
+ | *See [[Lazarus videos]]. | ||
+ | |||
+ | ===Books and Magazines=== | ||
+ | |||
+ | *See [[Pascal and Lazarus Books and Magazines]]. | ||
+ | |||
+ | ==Missing documentation?== | ||
+ | If you miss documentation for Lazarus or FreePascal, 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. | ||
+ | |||
+ | [[Category:Lazarus]] |
Revision as of 08:15, 11 September 2012
│
العربية (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
- Object Pascal Tutorial
- More Lazarus/FPC Tutorials - These are only the main tutorials. This other page shows more Lazarus/FPC tutorials.
- There are also other tutorials not hosted here in Lazarus Documentation#Lazarus related blogs, websites, videos, magazines and books.
- Assorted Tutorials - Collection of tutorials with difficulty ranging from beginner to expert level
- SchoolFreeware's FreePascal Tutorials - From command line interface (CLI) to graphical user interface (GUI) using Lazarus IDE
Lazarus/FPC
- 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.
- Developing with Graphics - Examples on 2D & 3D graphic programming.
- OpenGL Tutorial - How to use OpenGL in Lazarus applications.
- Multimedia Programming - How to play videos and sounds.
- Office Automation - How to interact with office software and create spreadsheets, text documents, presentations, etc.
- Lazarus/FPC Libraries - How to create dynamic libraries (.so, .dll, .dylib) and how to use them
- 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.
- Lazarus Inline Assembler - A getting started guide.
- Databases - An introduction to using databases in Lazarus and links to other database articles.
- SQLdb Tutorial1 - A tutorial that teaches you to get up and running with Lazarus visual components and databases
- SqlDBHowto - Explanations and code for various aspects of using SQLdb for reading and manipulating data in relational databases
- Lazarus Database Tutorial - A tutorial which has some more background information on how to connect to popular databases, for example MySQL, Firebird, Postgres, etc.
- Working With TSQLQuery - An in depth description of using TSQLQuery, having details about using parameters in queries and non-SELECT-queries
- 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.
- VirtualTreeview Example for Lazarus - Using VirtualTreeview on Lazarus.
Hardware, Threads and Processes
- Using the printer - Printer support in Lazarus
- Hardware Access - How to access hardware devices, such as ISA cards, PCI cards, parallel and serial ports and USB devices.
- Multithreaded Application Tutorial - How to write multithreaded applications using Free Pascal and Lazarus.
- Executing External Programs - A short tutorial showing how to run external programs from inside your program.
- LazDeviceAPIs - A LCL unit which offers an interface to various hardware devices such as the Accelerometer, SMS sending, GPS positioning, etc.
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
- Webbrowser - Webbrowser controls
- Web Programming and Networking - Tutorials about TCP/IP protocol, WebServices and links to web development articles.
Platform specific Tips
- Windows Programming Tips - Desktop Windows programming tips.
- Linux Programming Tips - Linux programming tips.
- OS X Programming Tips - Lazarus installation, useful tools, Unix commands, and more...
- WinCE Programming Tips - Using the telephone API, sending SMSes, and more...
- Android Programming - For Android smartphones and tablets
- iPhone/iPod development - About using Objective Pascal to develop iOS applications
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.
- 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
- 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
- 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.
- startlazarus - How the IDE is started.
- Unit not found - How to find units - Explains how the compiler and the IDE searches for units and how this can fail.
LCL
- LCL documentation - On line help for LCL (work in progress).
- LCL Components - Tutorials about the standard LCL components such as TMainMenu, TButton, TComboBox, TTimer, etc. Complements and links to 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 Code Examples - Example working code for Lazarus.
- Lazarus Custom Drawn Controls - A set of custom drawn controls in Lazarus
- How To Write Lazarus Component - A helpful guide to creating your first LCL component.
- LCL Accessibility - Documentation about using making LCL applications accessible
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
- 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
Tools
- 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
- InstantFPC - run pascal programs as normal unix scripts
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
- Delphi Converter in Lazarus - Convert a Delphi unit, project or package almost automatically
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
- Distributing Lazarus - Installers - Hints and notes for packagers who want to write an installer for Lazarus
- 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
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
- Translations / i18n / localizations for programs How to translate your application and how to load translated resourcestrings of projects and packages in your application.
- 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.
- TAChart documentation - Standard component for drawing graphs and charts.
- How To Write Lazarus Component for more component info
Free Pascal Compiler Documentation
In addition to this site, the latest version of the documentation can also be found on-line and in a variety of downloadable formats on the main Free Pascal Compiler site.
- 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/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.
- Observations on FreePascal and Lazarus Development
- Lazarussupport - A blog about Lazarus and Free Pascal in general - Joost van der Sluis
Websites
- Pascal - SwinBrain - Unique free pascal tutorial and documentation at Swinburne University
- Programando en Pascal - Spanish tutorial focused on FPC/Lazarus, hosted in Wikidot.
- Lazarus Programming Tutorials
- Object Pascal Tutorial Wiki version - Tao Yue's Pascal Tutorial (reposted with permission).
- Community for Free Pascal and Lazarus in Chinese. - Community, forums, source code and demos in Chinese.
- Pascal - Club d'entraide des développeurs francophones - Francophone community about Pascal.
Videos
- See Lazarus videos.
Books and Magazines
Missing documentation?
If you miss documentation for Lazarus or FreePascal, 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.