Difference between revisions of "Lazarus Documentation"

From Lazarus wiki
Jump to navigationJump to search
 
(187 intermediate revisions by 53 users not shown)
Line 1: Line 1:
 
{{Lazarus Documentation}}
 
{{Lazarus Documentation}}
 +
[[Category:Troubleshooting]]
 +
==Lazarus and Pascal Tutorials==
 +
 +
*[[Basic Pascal Tutorial]]
 +
*[[Free Pascal videos|Free Pascal video tutorials]]
 +
*[[Lazarus_videos|Lazarus video tutorials]]
 +
*[[:Category:Tutorials|All tutorials on the wiki]] - Collection of tutorials with difficulty ranging from beginner to expert level
 +
*There are also other tutorials not hosted here in [[Lazarus Documentation#Lazarus related blogs, websites, videos, magazines and books|Lazarus related blogs, websites, videos, magazines and books]].
 +
*[http://www.schoolfreeware.com/Free_Pascal_Tutorials.html SchoolFreeware's Free Pascal Tutorials] - From command line interface (CLI) to graphical user interface (GUI) using Lazarus IDE
 +
 +
(See also "Websites", further down this page)
 +
 +
=== Lazarus/FPC (Free Pascal)===
  
==Lazarus and Pascal Tutorials==
+
*[[Creating bindings for C libraries]] - How to convert C header files (.h) to pascal units
*[[TString List-TString Tutorial]] - Information for beginners In using the TStringList
+
*[[Console Mode Pascal]] - Using the Lazarus IDE for writing Pascal programs for text-mode operation.
*[[Overview of Free Pascal and Lazarus]] - A brief discussion of kinds of things you can develop with these general-purpose tools.
+
*[[Daemons and Services]] - How to write windows services and/or linux daemons.
*[[Lazarus Tutorial]] - A tutorial for beginners and a detailed description of the Lazarus IDE.
+
*[[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.
 +
*[[Pascal_for_Visual_Basic_users|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 [http://www.stack.nl/~marcov/doc-chm.zip here]. Both for Lazarus and '''fp''' text mode IDE.
 
*[[Lazarus IDE Tools]] - An intermediate level tutorial about code completion and other IDE tools.
 
*[[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.
+
*[[Lazarus Inline Assembler]] - A getting started guide.
*[[Developing with Graphics]] - Some basic examples on graphic programming.
 
*[[Object Oriented Programming with FreePascal and Lazarus|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.
 
*[[Networking|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
 
*[[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
 
*[[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.
 
*[[VirtualTreeview Example for Lazarus]] - Using VirtualTreeview on Lazarus.
*[[Webbrowser]] - Webbrowser controls
+
*[[Working With TSQLQuery]] - An in depth description of using TSQLQuery, having details about using parameters in queries and non-SELECT-queries
*[[Playing videos]] - How to play videos
+
 
*For Pascal tutorials see [[Lazarus Documentation#Lazarus related blogs and websites]]
+
=== 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 ===
 +
*[[Portal:Web_Development|Web Development Portal]] - How to develop web applications with Lazarus and Free Pascal.
 +
**[[Webbrowser]] - Webbrowser controls
 +
**[[Networking|Web Programming and Networking]] - Tutorials about TCP/IP protocol, WebServices and links to web development articles.
 +
 
 +
===Platforms===
 +
*[[Portal:Android|Android Portal]] - Programming tips and reference information on Android.
 +
**[[Android Programming]] - For Android smartphones and tablets.
 +
*[[Portal:Embedded|Embedded]] - An overview of development for Embedded platforms with/without an operating system
 +
** volunteers needed :-)
 +
*[[Portal:FreeBSD|FreeBSD Portal]] - An overview of development for FreeBSD with Lazarus and Free Pascal.
 +
**[[FreeBSD Programming Tips]] - Lazarus installation, useful tools, Unix commands, and more...
 +
*[[Portal:iOS|iOS Portal]] - Programming tips and reference information for iOS.
 +
**[[iPhone/iPod development]] - About using Objective Pascal to develop iOS applications.
 +
*[[Portal:Linux|Linux Portal]] - Programming tips and reference information for desktop Linux.
 +
**[[Lazarus on Raspberry Pi]] - How to install and use Lazarus on the Raspberry Pi.
 +
*[[Portal:Mac|Mac Portal]] - Programming tips and reference information for macOS.
 +
**[[macOS Programming Tips]] - Lazarus installation, useful tools, Unix commands, and more...
 +
*[[Portal:WinCE|WinCE Portal]] - Programming tips and reference information for WinCE
 +
**[[WinCE Programming Tips]] - Using the telephone API, sending SMSes, and more...
 +
*[[Portal:Windows|Windows Portal]] - Programming tips and reference information for desktop Windows and Windows mobile.
 +
**[[Windows Programming Tips]] - Programming information for desktop Windows - including server
  
 
==The Lazarus User Guides==
 
==The Lazarus User Guides==
 
*[[Lazarus Faq]] - General information about Lazarus and specifics for Linux and Windows users.
 
*[[Lazarus Faq]] - General information about Lazarus and specifics for Linux and Windows users.
 
*[[Lazarus DB Faq]] - FAQ on database issues in Lazarus.
 
*[[Lazarus DB Faq]] - FAQ on database issues in Lazarus.
*[[Databases in Lazarus]] - An overview of using databases in Lazarus
+
*[[Feature Ideas|Wishlist/Wanted Features]] - Features that you would like to see 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?
 
*[[How do I create a bug report]] - You think you found a bug in Lazarus, how can you report it?
  
 
===Installation===  
 
===Installation===  
 +
*[[:category:Install|Installation]] - all things "install" categorized
 
*[[Getting Lazarus]] - Brief instructions on how to download and install a released or SVN version of Lazarus
 
*[[Getting Lazarus]] - Brief instructions on how to download and install a released or SVN version of Lazarus
 
*[[Installing Lazarus]] - A detailed installation guide
 
*[[Installing Lazarus]] - A detailed installation guide
Line 42: Line 91:
  
 
===IDE===
 
===IDE===
 +
Integrated Development Environment
 
*[[IDE tricks]] - Tips, tricks and hidden features
 
*[[IDE tricks]] - Tips, tricks and hidden features
 
*[[Lazarus IDE]] - The IDE windows
 
*[[Lazarus IDE]] - The IDE windows
Line 53: Line 103:
 
*[[Lazarus for education]] - How to setup the IDE for courses and beginners.
 
*[[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.
 
*[[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===
 +
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.
 
*[[doc:lcl/|LCL documentation]] - On line help for LCL (work in progress).
 
*[[doc:lcl/|LCL documentation]] - On line help for LCL (work in progress).
*[[LCL Components]] - Tutorials about the standard LCL components, complements the reference docs
+
*[[LazActiveX]] - ActiveX/LazActiveX documentation
 +
*[[TAChart documentation]] - Standard component for drawing graphs and charts.
 +
*[[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.
 
*[[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.
 
*[[Autosize / Layout]] - How to design forms that work on all platforms.
Line 67: Line 122:
 
*[[LCL Tips]] - Tips and tricks
 
*[[LCL Tips]] - Tips and tricks
 
*[[LCL Defines]] - Choosing the right options to recompile LCL
 
*[[LCL Defines]] - Choosing the right options to recompile LCL
*[[Lazarus_Tutorial#The_Component_Palette|LCL Components]] - A description of the main LCL controls which come installed with Lazarus, such as TMainMenu, TButton, TComboBox, TTimer, etc.
+
*[[Components_and_Code_examples|LCL Code Examples]] - Example working code for Lazarus.
*[[Components_and_Code_examples#LCL_Usage_examples|LCL Code Examples]] - Example working code for Lazarus.
+
*[[Lazarus Custom Drawn Controls]] - A set of custom drawn controls in Lazarus
 +
*[[LCL Accessibility]] - Documentation about using making LCL applications accessible
  
 
===Developing===
 
===Developing===
 
*[[The Power of Proper Planning and Practices]] - common-sense programming best practices for the Free Pascal and Lazarus developer
 
*[[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
 
*[[Multiplatform Programming Guide]] - How to develop cross-platform applications and how to port from one platform to another
 +
*[[Introduction to platform-sensitive development]] - The next step in cross-platform development.
 
*[[Deploying Your Application]] - How to create an installer for your application
 
*[[Deploying Your Application]] - How to create an installer for your application
 
*[[Cross compiling]] - Creating executables for one platform, on another
 
*[[Cross compiling]] - Creating executables for one platform, on another
Line 82: Line 139:
 
*[[Developing Python Modules with Pascal]] - extending Python with Pascal
 
*[[Developing Python Modules with Pascal]] - extending Python with Pascal
 
*[[Developing Web Apps with Pascal]] - yes, you can write Rich Internet Applications (RIA) with Pascal
 
*[[Developing Web Apps with Pascal]] - yes, you can write Rich Internet Applications (RIA) with Pascal
 +
*[[Pascal and GIS]] - using Pascal for GIS and mapping
 
*[[Smartphone Development]] - About using FPC and Lazarus to target various smartphones
 
*[[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
 
*[[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...
 
  
 
=== Tools ===
 
=== Tools ===
Line 96: Line 149:
 
*[[lazbuild]] - Compiling projects and packages without the IDE
 
*[[lazbuild]] - Compiling projects and packages without the IDE
 
*[[LazSVNPkg]] - Lazarus Subversion IDE Plugin
 
*[[LazSVNPkg]] - Lazarus Subversion IDE Plugin
 +
*[[InstantFPC]] - run pascal programs as normal unix scripts
  
 
===Coming from Delphi===
 
===Coming from Delphi===
Line 101: Line 155:
 
*[[Lazarus For Delphi Users]] - For Delphi users who are getting started with Lazarus
 
*[[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
 
*[[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==
 
==The Lazarus Developer Guides==
 +
*[[Developer pages]] - A list of lazarus developers
 
*[[Lazarus Development Process]] - Roadmaps, ToDos, current development and what needs to be done for Lazarus 1.0
 
*[[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
 
*[[How To Help Developing Lazarus]] - A guide to help newbies start improving Lazarus
Line 115: Line 171:
 
*[[Codetools]] - How the codetools are integrated into the IDE
 
*[[Codetools]] - How the codetools are integrated into the IDE
 
*[[Creating IDE Help]] - How to extend the IDE documentation
 
*[[Creating IDE Help]] - How to extend the IDE documentation
*[[Unit not found - How to find units]] - How to setup the IDE and source files
+
*[[How_To_Make_Lazarus_Docs]] - How to make help for the IDE  
 +
*[[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.  
 
*[[Bounties]] - Need a particular new feature soon? Set a price here.  
  
===LCL - Lazarus component library===
+
===[[LCL]] - Lazarus component library===
 +
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 Messages]] - Guide related to LCL Messages
 
*[[LCL Internals]] - Implementation details and how to create a new widgetset
 
*[[LCL Internals]] - Implementation details and how to create a new widgetset
Line 131: Line 190:
 
{{Interfaces}}
 
{{Interfaces}}
  
===Translations===
+
===Translating/Internationalization/Localization===
* [[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.
+
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) :
 +
* [[Translations_/_i18n_/_localizations_for_programs|Translations / i18n / localizations for programs]] How to translate your application and how to load translated resource strings of projects and packages in your application.
 +
* [[Step-by-step_instructions_for_creating_multi-language_applications]]: Tutorial demonstrating how to convert one of the Lazarus example projects to a multi-language application.
 +
* [[Getting translation strings right]] A few notes for programmers on how to create and use translatable 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:'''
 
* '''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.
 
:* [[German localization notes|German]] - Notes and guidelines for translating the Lazarus IDE to German, including a small dictionary to look up often used translations.
Line 139: Line 201:
 
<!-- *[[TO-DO]] Remaining Tasks -->
 
<!-- *[[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.
 
* [[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]]
+
*[[Everything_else_about_translations#Translating_the_IDE|Translating the IDE]]
  
 
==Additional Components Documentation==
 
==Additional Components Documentation==
Line 145: Line 207:
 
*[[Pascal Script]] and [[Pascal Script Examples]] - How to use the pascal script components in Lazarus
 
*[[Pascal Script]] and [[Pascal Script Examples]] - How to use the pascal script components in Lazarus
 
*[[OpenGL]] - How to use OpenGL 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.
+
*[[KOL-CE]] - Free Pascal/Lazarus port of KOL&amp;MCK library. How to create very compact applications for Win32/WinCE in Lazarus.
 +
*[[How To Write Lazarus Component]] for more component info
 +
*[[Project Groups]] - about package projectgroupslaz.lpk
 +
*[[Package Tabs]] - about package packagetabs.lpk
 +
*[[Favorites]] - about package favorites.lpk
  
 
==Free Pascal Compiler Documentation==
 
==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].
+
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.var Free Pascal Compiler site].
  
 
*[http://lazarus-ccr.sourceforge.net/fpcdoc/user/user.html User's guide]
 
*[http://lazarus-ccr.sourceforge.net/fpcdoc/user/user.html User's guide]
Line 158: Line 224:
 
*[[Build messages]]
 
*[[Build messages]]
  
==Lazarus related blogs and websites==
+
==Special Topics==
'''Blogs'''
+
*[[Databases]]
*[http://lazarus-dev.blogspot.com/ Lazarus Development] - A blog of Lazarus developers regards development process.
+
*[[Portal:SciTech|SciTech Portal]] - Lazarus and Free Pascal for Science, medicine and technology.
*[[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)
+
==Lazarus related blogs, websites, videos, magazines and books==
*[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]]).
+
===Blogs===
*[http://beeography.wordpress.com/tag/object-pascal/ Bee.ography] just (another) Bee’s buzz!
+
*[http://lazarus-dev.blogspot.com/ Lazarus Development] - (2015) A blog of Lazarus developers regards development process.
*[http://donaldshimoda.blogspot.com/ Parallel Pascal Worlds] Donald Shimoda.
+
*[[Adventures of a Newbie]] - (2006) 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] - (October 2016) 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] - (2014) 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] - (2013) 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] (2011) just (another) Bee’s buzz!
 +
*[http://donaldshimoda.blogspot.com/ Parallel Pascal Worlds] (September 2016) Donald Shimoda.
 +
*[http://devblog.brahmancreations.com/content/observations-on-freepascal-and-lazarus-development devblog.brahmancreations.com] (2010) Observations on Free Pascal and Lazarus Development
 +
*[http://www.cnoc.nl/en/blog/ CNOC TechBlog / Lazarussupport] - (2016?) A blog about Lazarus and Free Pascal in general - Joost van der Sluis
 +
 
 +
===Websites===
 +
 
 +
These websites cover Free Pascal, Lazarus or both - or they cover Delphi concepts that are applicable to Lazarus/FPC:
 +
*[http://pp4s.co.uk PP4S] Lazarus (and Delphi) getting started information, tutorials. Useful for beginners.
 +
*[https://web.archive.org/web/20161229032639/http://swinbrain.ict.swin.edu.au/wiki/Pascal Pascal - SwinBrain] (Internet Archive; original link dead) - Unique free pascal tutorial and documentation at Swinburne University
 +
*[http://sheepdogguides.com/lut/ Lazarus Programming] A series of tutorials to get beginners started. Limited "how to install" material. From SheepdogSoftware.co.uk
 +
*[[Basic Pascal Tutorial]] Updated version of [http://www.taoyue.com/ Tao Yue's] [http://www.taoyue.com/tutorials/pascal/ Pascal Tutorial] (reposted with permission).
 +
*[http://sheepdogguides.com/tut.htm Delphi Tutorials Arranged in Groups, by Difficulty] An accumulation of material from many years. Topics range from "Hello World" to using Dallas 1-Wire to TCP/IP. The ones I've tried port to Lazarus without hassle.
 +
 
 +
Chinese:
 +
*[http://www.fpccn.com/ Community for Free Pascal and Lazarus in Chinese.] - Community, forums, source code and demos in Chinese.
 +
 
 +
French:
 +
*[http://pascal.developpez.com/ Pascal - Club d'entraide des développeurs francophones] - Francophone community about Pascal.
  
'''Websites'''
+
Spanish:
*[[swainbrain pascal wiki]] - unique free pascal tutorials and info [http://mercury.it.swin.edu.au/swinbrain/index.php/Pascal#Pascal_Development_Tools swainbrain]
 
 
*[http://aprendepascal.wikidot.com Programando en Pascal] - Spanish tutorial focused on FPC/Lazarus, hosted in Wikidot.
 
*[http://aprendepascal.wikidot.com Programando en Pascal] - Spanish tutorial focused on FPC/Lazarus, hosted in Wikidot.
*[[Contents|Pascal Tutorial]] ''Wiki version'' - [http://www.taoyue.com/ Tao Yue's] [http://www.taoyue.com/tutorials/pascal/ Pascal Tutorial]  (reposted with permission).
+
 
*[[Pascal Tutorial]] - [http://www.taoyue.com/ Tao Yue's] [http://www.taoyue.com/tutorials/pascal/ Pascal Tutorial] (reposted with permission).
+
===Videos===
 +
* See [[Lazarus videos|Lazarus videos]]
 +
 
 +
===Books===
 +
* See [[Pascal and Lazarus Books and Magazines]]
 +
 
 +
==Conferences on Lazarus and Free Pascal==
 +
* See [[Conferences and Events]]
 +
 
 +
== How to cite in scientific publications ==
 +
* See [[Academic citation]]
 +
 
 +
==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|FPC Wiki Documentation]]
 +
 
 +
[[Category:Main]]
 +
[[Category:Lazarus]]

Latest revision as of 20:27, 31 May 2022

العربية (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

(See also "Websites", further down this page)

Lazarus/FPC (Free Pascal)

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

Web

Platforms

The Lazarus User Guides

Installation

IDE

Integrated Development Environment

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

Coming from Delphi

The Lazarus Developer Guides

LCL - Lazarus component library

The following articles go deeper into developing for/with the LCL. See also the user LCL section above.

Interfaces

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.

Additional Components Documentation

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.

Special Topics

Lazarus related blogs, websites, videos, magazines and books

Blogs

Websites

These websites cover Free Pascal, Lazarus or both - or they cover Delphi concepts that are applicable to Lazarus/FPC:

Chinese:

French:

Spanish:

Videos

Books

Conferences on Lazarus and Free Pascal

How to cite in scientific publications

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