Sign in Join
Wiki copytemporary

Lazarus Documentation: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Lazarus Documentation

OldNewLine
1+## Lazarus and Pascal Tutorials
2+
3+- [[Basic Pascal Tutorial]]
4+- [[Free Pascal videos|Free Pascal video tutorials]]
5+- [[Lazarus videos|Lazarus video tutorials]]
6+- [All tutorials on the wiki](/wiki-category/Tutorials) - Collection of tutorials with difficulty ranging from beginner to expert level
7+- There are also other tutorials not hosted here in [[Lazarus Documentation|Lazarus related blogs, websites, videos, magazines and books]].
8+- [SchoolFreeware's Free Pascal Tutorials](http://www.schoolfreeware.com/Free_Pascal_Tutorials.html) - From command line interface (CLI) to graphical user interface (GUI) using Lazarus IDE
9+
10+(See also "Websites", further down this page)
11+
12+### Lazarus/FPC (Free Pascal)
13+
14+- [[Creating bindings for C libraries]] - How to convert C header files (.h) to pascal units
15+- [[Console Mode Pascal]] - Using the Lazarus IDE for writing Pascal programs for text-mode operation.
16+- [[Daemons and Services]] - How to write windows services and/or linux daemons.
17+- [[Databases]] - An introduction to using databases in Lazarus and links to other database articles.
18+- [[Developing with Graphics]] - Examples on 2D & 3D graphic programming.
19+- [[Form Tutorial]] - A tutorial for beginners on how to deal with forms.
20+- [[Pascal for Visual Basic users|Free Pascal for Visual Basic users]]
21+- [[Lazarus Database Tutorial]] - A tutorial which has some more background information on how to connect to popular databases, for example MySQL, Firebird, Postgres, etc.
22+- Lazarus integrated .chm help file system for manual copying into .../chm subdirectory, download [here](http://www.stack.nl/~marcov/doc-chm.zip). Both for Lazarus and **fp** text mode IDE.
23+- [[Lazarus IDE Tools]] - An intermediate level tutorial about code completion and other IDE tools.
24+- [[Lazarus Inline Assembler]] - A getting started guide.
25+- [[Lazarus/FPC Libraries]] - How to create dynamic libraries (.so, .dll, .dylib) and how to use them
26+- [[Lazarus Tutorial]] - A tutorial for beginners and a detailed description of the Lazarus IDE.
27+- [[Multimedia Programming]] - How to play videos and sounds.
28+- [[Office Automation]] - How to interact with office software and create spreadsheets, text documents, presentations, etc.
29+- [[OpenGL Tutorial]] - How to use OpenGL in Lazarus applications.
30+- [[Overview of Free Pascal and Lazarus]] - A brief discussion of kinds of things you can develop with these general-purpose tools.
31+- [[spelling]] - How to use the Hunspell library in a Lazarus App.
32+- [[SQLdb Tutorial0]] - Set up instructions for sample data for the following database tutorials
33+- [[SQLdb Tutorial1]] - A tutorial that teaches you to get up and running with Lazarus visual components and databases
34+- [[SQLdb Tutorial2]] - Second part of the DB tutorial series, showing editing, inserting etc.
35+- [[SQLdb Tutorial3]] - Third part of the DB tutorial series, showing how to program for multiple databases and use a login form
36+- [[SQLdb Tutorial4]] - Fourth part of the DB tutorial series, showing how to use data modules
37+- [[SqlDBHowto]] - Explanations and code for various aspects of using SQLdb for reading and manipulating data in relational databases
38+- [[Translations / i18n / localizations for programs]] - How to provide localized versions of your programs and packages
39+- [[VirtualTreeview Example for Lazarus]] - Using VirtualTreeview on Lazarus.
40+- [[Working With TSQLQuery]] - An in depth description of using TSQLQuery, having details about using parameters in queries and non-SELECT-queries
41+
42+### Hardware, Threads and Processes
43+
44+- [[Using the printer]] - Printer support in Lazarus
45+- [[Hardware Access]] - How to access hardware devices, such as ISA cards, PCI cards, parallel and serial ports and USB devices.
46+- [[Multithreaded Application Tutorial]] - How to write multithreaded applications using Free Pascal and Lazarus.
47+- [[Executing External Programs]] - A short tutorial showing how to run external programs from inside your program.
48+- [[LazDeviceAPIs]] - A LCL unit which offers an interface to various hardware devices such as the Accelerometer, SMS sending, GPS positioning, etc.
49+
50+### Files
51+
52+- [[File Handling In Pascal]] - Basic explanations on the use of files, for beginners in pascal.
53+- [[TXMLPropStorage]] - Using TXMLPropStorage to save user preferences.
54+- [[XML Tutorial]] - Writing and reading XML files.
55+- [[Using INI Files]] - How to work with INI files in pascal.
56+
57+### Web
58+
59+- [[Portal:Web Development|Web Development Portal]] - How to develop web applications with Lazarus and Free Pascal.
60+ - [[Webbrowser]] - Webbrowser controls
61+ - [[Networking|Web Programming and Networking]] - Tutorials about TCP/IP protocol, WebServices and links to web development articles.
62+
63+### Platforms
64+
65+- [[Portal:Android|Android Portal]] - Programming tips and reference information on Android.
66+ - [[Android Programming]] - For Android smartphones and tablets.
67+- [[Portal:Embedded|Embedded]] - An overview of development for Embedded platforms with/without an operating system
68+ - volunteers needed :-)
69+- [[Portal:FreeBSD|FreeBSD Portal]] - An overview of development for FreeBSD with Lazarus and Free Pascal.
70+ - [[FreeBSD Programming Tips]] - Lazarus installation, useful tools, Unix commands, and more...
71+- [[Portal:iOS|iOS Portal]] - Programming tips and reference information for iOS.
72+ - [[iPhone/iPod development]] - About using Objective Pascal to develop iOS applications.
73+- [[Portal:Linux|Linux Portal]] - Programming tips and reference information for desktop Linux.
74+ - [[Lazarus on Raspberry Pi]] - How to install and use Lazarus on the Raspberry Pi.
75+- [[Portal:Mac|Mac Portal]] - Programming tips and reference information for macOS.
76+ - [[macOS Programming Tips]] - Lazarus installation, useful tools, Unix commands, and more...
77+- [[Portal:WinCE|WinCE Portal]] - Programming tips and reference information for WinCE
78+ - [[WinCE Programming Tips]] - Using the telephone API, sending SMSes, and more...
79+- [[Portal:Windows|Windows Portal]] - Programming tips and reference information for desktop Windows and Windows mobile.
80+ - [[Windows Programming Tips]] - Programming information for desktop Windows - including server
81+
82+## The Lazarus User Guides
83+
84+- [[Lazarus Faq]] - General information about Lazarus and specifics for Linux and Windows users.
85+- [[Lazarus DB Faq]] - FAQ on database issues in Lazarus.
86+- [[Feature Ideas|Wishlist/Wanted Features]] - Features that you would like to see in Lazarus
87+- [[How do I create a bug report]] - You think you found a bug in Lazarus, how can you report it?
88+
89+### Installation
90+
91+- [Installation](/wiki-category/Install) - all things "install" categorized
92+- [[Getting Lazarus]] - Brief instructions on how to download and install a released or SVN version of Lazarus
93+- [[Installing Lazarus]] - A detailed installation guide
94+- [[Multiple Lazarus]] - How to install several lazarus versions on one machine
95+
96+### IDE
97+
98+Integrated Development Environment
99+
100+- [[IDE tricks]] - Tips, tricks and hidden features
101+- [[Lazarus IDE]] - The IDE windows
102+- [[Lazarus IDE Shortcuts]] - The key mapping and shortcuts.
103+- [[Lazarus Packages]] - A guide for creating a package under Lazarus
104+- [[Install Packages]] - A small guide to install packages
105+- [[Extending the IDE]] - How to add functionality to the Lazarus IDE
106+- [[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.
107+- [[Using Lazarus for other computer languages]] - How to use the IDE for C, Java, etc.
108+- [[IDE Development]] - Various pages about current development of the IDE.
109+- [[Lazarus for education]] - How to setup the IDE for courses and beginners.
110+- [[Lazarus Hacks]] - Customizations and hacks that can adapt the IDE and LCL to specific needs.
111+- [[startlazarus]] - How the IDE is started.
112+- [[Unit not found - How to find units]] - Explains how the compiler and the IDE searches for units and how this can fail.
113+
114+### LCL
115+
116+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.
117+
118+- [[doc:lcl/|LCL documentation]] - On line help for LCL (work in progress).
119+- [[LazActiveX]] - ActiveX/LazActiveX documentation
120+- [[TAChart documentation]] - Standard component for drawing graphs and charts.
121+- [[LCL Components]] - Tutorials about the standard LCL components such as TMainMenu, TButton, TComboBox, TTimer, etc. Complements and links to the reference docs.
122+- [[The LCL in various platforms]] - A brief discussion about LCL features which behave differently in different platforms.
123+- [[Autosize / Layout]] - How to design forms that work on all platforms.
124+- [[Main Loop Hooks]] - How to handle multiple event sources
125+- [[Asynchronous Calls]] - How to queue methods for later execution
126+- [[File size and smartlinking]] - How to smartlink applications and create smaller executables.
127+- [[Accessing the Interfaces directly]] - Example how to access the LCL widgetsets
128+- [[Add Help to Your Application]] - How to create a Online Help for your application
129+- [[Colors]] - Description of system colors like clDefault, clWindow and the fpImage FPColor
130+- [[LCL Tips]] - Tips and tricks
131+- [[LCL Defines]] - Choosing the right options to recompile LCL
132+- [[Components and Code examples|LCL Code Examples]] - Example working code for Lazarus.
133+- [[Lazarus Custom Drawn Controls]] - A set of custom drawn controls in Lazarus
134+- [[LCL Accessibility]] - Documentation about using making LCL applications accessible
135+
136+### Developing
137+
138+- [[The Power of Proper Planning and Practices]] - common-sense programming best practices for the Free Pascal and Lazarus developer
139+- [[Multiplatform Programming Guide]] - How to develop cross-platform applications and how to port from one platform to another
140+- [[Introduction to platform-sensitive development]] - The next step in cross-platform development.
141+- [[Deploying Your Application]] - How to create an installer for your application
142+- [[Cross compiling]] - Creating executables for one platform, on another
143+- [[GDB Debugger Tips]] - Known Issues / Tips for debugging Pascal using GDB
144+- [[Remote Debugging]] - How to debug your Lazarus application from another machine
145+- [[Application Icon]] - Setting the application icon
146+- [[Using Pascal Libraries with .NET and Mono]] - yes, you can use your Pascal code with .NET and Mono
147+- [[Pascal and PHP]] - the Pascal connection to PHP
148+- [[Developing Python Modules with Pascal]] - extending Python with Pascal
149+- [[Developing Web Apps with Pascal]] - yes, you can write Rich Internet Applications (RIA) with Pascal
150+- [[Pascal and GIS]] - using Pascal for GIS and mapping
151+- [[Smartphone Development]] - About using FPC and Lazarus to target various smartphones
152+- [[Lazarus Components Directory]] - A description of extra packages which are shipped with Lazarus, such as support for printers, fpWeb, daemons, etc
153+
154+### Tools
155+
156+- [[Lazarus Documentation Editor]] - Using "lazde" to create documentation
157+- [[FPDoc Editor]] - An integrated editor for documentation files
158+- [[FPDoc Updater]] - A GUI tool for updating FPDoc files
159+- [[lazbuild]] - Compiling projects and packages without the IDE
160+- [[LazSVNPkg]] - Lazarus Subversion IDE Plugin
161+- [[InstantFPC]] - run pascal programs as normal unix scripts
162+
163+### Coming from Delphi
164+
165+- [[Lazarus Components]] - Comparison between Lazarus and Turbo Delphi components
166+- [[Lazarus For Delphi Users]] - For Delphi users who are getting started with Lazarus
167+- [[Code Conversion Guide]] - How to convert existing code and components from Delphi and Kylix
168+- [[Delphi Converter in Lazarus]] - Convert a Delphi unit, project or package almost automatically
169+
170+## The Lazarus Developer Guides
171+
172+- [[Developer pages]] - A list of lazarus developers
173+- [[Lazarus Development Process]] - Roadmaps, ToDos, current development and what needs to be done for Lazarus 1.0
174+- [[How To Help Developing Lazarus]] - A guide to help newbies start improving Lazarus
175+- [[Version Numbering]] - Explanation of the different version numbers of Lazarus
176+- [[Creating A Patch|Creating a Patch]] - A guide to making a patch with changes made to Lazarus
177+- [[Creating a Backtrace with GDB]] - A guide to making a backtrace to help you debug a program
178+- [[Nomenclature]] - Guide to choose a name for a new method or property
179+- [[DesignGuidelines|Design Guide Lines]] - A guide about how to proceed when changing Lazarus Source Code.
180+- [[GUI design]] - Notes on guidelines when designing the lazarus GUI
181+- [[Roadmap]] - An idea of the current status of the various parts of Lazarus
182+- [[Moderating the bug tracker]] - Guidelines for lazarus developers and moderators for using the [bug tracker](http://www.freepascal.org/mantis/).
183+- [[Codetools]] - How the codetools are integrated into the IDE
184+- [[Creating IDE Help]] - How to extend the IDE documentation
185+- [[How To Make Lazarus Docs]] - How to make help for the IDE
186+- [[Distributing Lazarus - Installers]] - Hints and notes for packagers who want to write an installer for Lazarus
187+- [[Bounties]] - Need a particular new feature soon? Set a price here.
188+
189+### [[LCL]] - Lazarus component library
190+
191+The following articles go deeper into developing for/with the LCL. See also the user LCL section above.
192+
193+- [[How To Write Lazarus Component]] - A helpful guide to creating your first LCL component.
194+- [[LCL Messages]] - Guide related to LCL Messages
195+- [[LCL Internals]] - Implementation details and how to create a new widgetset
196+- [[LCL Key Handling]] - Help! A key press, what now?
197+- [[LCL Internals - Resizing, Moving]] - How the LCL communicates with the LCL interface to resize, move controls
198+- [[LCL Drag Drop]] - Managing dragging, dropping and docking
199+- [[LCL Unicode Support]] - Road to Unicode enabled Lazarus
200+- [[LCL Documentation Roadmap]] - Which units have to be documented
201+- [[LCL Bindings]] - Bindings to use LCL on other languages
202+
203+### Interfaces
204+
205+### Translating/Internationalization/Localization
206+
207+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) :
208+
209+- [[Translations / i18n / localizations for programs]] How to translate your application and how to load translated resource strings of projects and packages in your application.
210+- [[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.
211+- [[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.
212+- **Localization Notes:**
213+
214+:* [[German localization notes|German]] - Notes and guidelines for translating the Lazarus IDE to German, including a small dictionary to look up often used translations.
215+
216+:* [[Portuguese-Brazilian Localization Notes|Portuguese-Brazilian]] - Small dictionary containing common translations of terms used in the Lazarus IDE for the Portuguese-Brazilian translation.
217+
218+:* [[Russian localization notes|Russian]] - Notes and guidelines for translating the Lazarus IDE into Russian.
219+
220+- Add language bar explains how you can add a list of translations to the top of a wiki page.
221+- [[Everything else about translations|Translating the IDE]]
222+
223+## Additional Components Documentation
224+
225+- [[Project Templates]] - the package projtemplates
226+- [[Pascal Script]] and [[Pascal Script Examples]] - How to use the pascal script components in Lazarus
227+- [[OpenGL]] - How to use OpenGL in Lazarus
228+- [[KOL-CE]] - Free Pascal/Lazarus port of KOL&MCK library. How to create very compact applications for Win32/WinCE in Lazarus.
229+- [[How To Write Lazarus Component]] for more component info
230+- [[Project Groups]] - about package projectgroupslaz.lpk
231+- [[Package Tabs]] - about package packagetabs.lpk
232+- [[Favorites]] - about package favorites.lpk
233+
234+## Free Pascal Compiler Documentation
235+
236+In addition to [this site](http://lazarus-ccr.sourceforge.net/fpcdoc/), 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](http://www.freepascal.org/docs.var).
237+
238+- [User's guide](http://lazarus-ccr.sourceforge.net/fpcdoc/user/user.html)
239+- [Programmer's guide](http://lazarus-ccr.sourceforge.net/fpcdoc/prog/prog.html)
240+- [Reference guide for the system unit, and supported Pascal constructs](http://lazarus-ccr.sourceforge.net/fpcdoc/ref/ref.html)
241+- [Run-Time Library reference manual](http://lazarus-ccr.sourceforge.net/fpcdoc/rtl/index.html)
242+- [Free Component Library reference manual](http://lazarus-ccr.sourceforge.net/fpcdoc/fcl/index.html)
243+- [Free Pascal documentation tool manual](http://lazarus-ccr.sourceforge.net/fpcdoc/fpdoc/fpdoc.html)
244+- [[Build messages]]
245+
246+## Special Topics
247+
248+- [[Databases]]
249+- [[Portal:SciTech|SciTech Portal]] - Lazarus and Free Pascal for Science, medicine and technology.
250+
251+## Lazarus related blogs, websites, videos, magazines and books
252+
253+### Blogs
254+
255+- [Lazarus Development](http://lazarus-dev.blogspot.com/) - (2015) A blog of Lazarus developers regards development process.
256+- [[Adventures of a Newbie]] - (2006) A blog of a newbie getting started with some tutorial information in a running log.
257+- [On the road with Lazarus/Free Pascal](http://lazarusroad.blogspot.com/) - (October 2016) A blog dedicated to register my experiences while programming with Lazarus and Free Pascal (by Luiz Américo)
258+- [Porting to Lazarus](http://port2laz.blogspot.com/) - (2014) This blog describes the porting of a medium-sized application (~100 kloc) from D7 with CLX to Lazarus (by Alexsander da Rosa)
259+- [Living Lazarus](http://living-lazarus.blogspot.com/) - (2013) One man's exploration into the possibilities of an open source RAD (by Wibblytim).
260+- [Bee.ography](http://beeography.wordpress.com/tag/object-pascal/) (2011) just (another) Bee’s buzz!
261+- [Parallel Pascal Worlds](http://donaldshimoda.blogspot.com/) (September 2016) Donald Shimoda.
262+- [devblog.brahmancreations.com](http://devblog.brahmancreations.com/content/observations-on-freepascal-and-lazarus-development) (2010) Observations on Free Pascal and Lazarus Development
263+- [CNOC TechBlog / Lazarussupport](http://www.cnoc.nl/en/blog/) - (2016?) A blog about Lazarus and Free Pascal in general - Joost van der Sluis
264+
265+### Websites
266+
267+These websites cover Free Pascal, Lazarus or both - or they cover Delphi concepts that are applicable to Lazarus/FPC:
268+
269+- [PP4S](http://pp4s.co.uk) Lazarus (and Delphi) getting started information, tutorials. Useful for beginners.
270+- [Pascal - SwinBrain](https://web.archive.org/web/20161229032639/http://swinbrain.ict.swin.edu.au/wiki/Pascal) (Internet Archive; original link dead) - Unique free pascal tutorial and documentation at Swinburne University
271+- [Lazarus Programming](http://sheepdogguides.com/lut/) A series of tutorials to get beginners started. Limited "how to install" material. From SheepdogSoftware.co.uk
272+- [[Basic Pascal Tutorial]] Updated version of [Tao Yue's](http://www.taoyue.com/) [Pascal Tutorial](http://www.taoyue.com/tutorials/pascal/) (reposted with permission).
273+- [Delphi Tutorials Arranged in Groups, by Difficulty](http://sheepdogguides.com/tut.htm) 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.
274+
275+Chinese:
276+
277+- [Community for Free Pascal and Lazarus in Chinese.](http://www.fpccn.com/) - Community, forums, source code and demos in Chinese.
278+
279+French:
280+
281+- [Pascal - Club d'entraide des développeurs francophones](http://pascal.developpez.com/) - Francophone community about Pascal.
282+
283+Spanish:
284+
285+- [Programando en Pascal](http://aprendepascal.wikidot.com) - Spanish tutorial focused on FPC/Lazarus, hosted in Wikidot.
286+
287+### Videos
288+
289+- See [[Lazarus videos]]
290+
291+### Books
292+
293+- See [[Pascal and Lazarus Books and Magazines]]
294+
295+## Conferences on Lazarus and Free Pascal
296+
297+- See [[Conferences and Events]]
298+
299+## How to cite in scientific publications
300+
301+- See [[Academic citation]]
302+
303+## Missing documentation?
304+
305+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:
306+
307+- [[FPDoc Editor]] Built-in documentation editor in Lazarus. Page explains how to get fpdoc help sources and write your own help.
308+
309+## See also
310+
311+- [[FPC|FPC Wiki Documentation]]
312+
313+---
314+*From the Free Pascal wiki, page "Lazarus Documentation", as it stood on 2022-05-31 after a change by Thierrybo, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
315+Category: Lazarus
316+Category: Main
317+Category: Troubleshooting

Back to history