* * *

Author Topic: Blogs  (Read 385 times)


  • Guest
« on: April 17, 2018, 09:28:50 am »
I am relative new to Lazarus and FPC - I come from the Microsoft .Net world.

As I am struggling through all available (lacking) information, I am wondering why there is so little information on Lazarus and FPC.
Yes, there are the Wiki pages. But almost all are out of date - looks like hey are not maintained by anyone.
And there is a developer blog (http://lazarus-dev.blogspot.com/) - last post from 2015 and a total of 47 posts in 8 years.
On code project - one of the biggest code repositories, Free Pascal is non existent, and Delphi is almost non existent.
And when I search using google, the only thing I find is the outdated wiki.

A project will be as successful as its documentation:
- we need to share up to date knowledge
- we need example projects to learn how to use specific technologies
- we need to share the internals of the compiler
- we need to spread the word of these great projects (lazarus and FPC)

Good documentation and samples will attract new developers and it will increase the tiobe index for the language (as this is done by the count of pages that relate to a language, not it's user base or count of projects done in it).

Can we make a place available within the lazarus / free pascal sites where anyone can blog? With a specific blog area for the developers of laz and FPC?
Can we make a place available for sample projects?
Can we get links on the official website to the FPC and Lazarus blogs maintained by users?

It would help a lot for beginners and for starters with new areas of the development system.


  • Hero Member
  • *****
  • Posts: 2642
Re: Blogs
« Reply #1 on: April 17, 2018, 09:49:55 am »
- we need example projects to learn how to use specific technologies
In the IDE use Tools->Example Projects...
or with a file browser explore ../lazarus/examples/... for yourself

- we need to share the internals of the compiler
The compiler is open source. Its internals are available to all.


  • Jr. Member
  • **
  • Posts: 89
Re: Blogs
« Reply #2 on: April 17, 2018, 09:53:51 am »
You can find some examples in here http://lazplanet.blogspot.com/
http://lazplanet.blogspot.com/2017/12/supercharge-your-beginner-friends-with.html (free ebook for beginners)
http://hnue.edu.vn/Portals/0/TeachingSubject/hoanglm/27736a95-2ee0-47c4-be13-d810aa36cd76ObjectPascalBasis.pdf (free ebook)
Also when you installed Lazarus IDE on your computer, you can find examples and components here

C:\lazarus\examples (you can open projects examples)
C:\lazarus\components (you can istall extra components)
C:\lazarus\docs\chm (you can read some documentation)

Download Lazarus Code and Component Repository from here
https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/ click on the upper right side button Download Snapshot
then uzip it and you can install extra components from there, plus you have examples.
« Last Edit: April 17, 2018, 10:01:45 am by Raf20076 »


  • Guest
Re: Blogs
« Reply #3 on: April 17, 2018, 10:10:02 am »
The examples in Lazarus.
Might be handy, but most projects have no description and because it is not on the web, I can not use Google to find what I need.
This is what I mean - the searching for what you need is too time consuming - if you can find it at all.
And a sample project is nice. But a web page where the sample is explained is better; that way you can learn from it instead of having to examine the code to find out how it works.

Te same for the docs, in Chm and in Pdf - not searchable, not linkable (for Pdf).

Anyone here ever looked at MSDN? Because that is what I mean.


  • Jr. Member
  • **
  • Posts: 89


  • Guest
Re: Blogs
« Reply #5 on: April 17, 2018, 10:25:22 am »
By example:
Reference for unit 'Pipes' (complete copy of the page):

Unit implementing pipe streams.





The Pipes unit implements streams that are wrappers around the OS's pipe functionality. It creates a pair of streams, and what is written to one stream can be read from another.

Ok, and what do I use it for, examples of usage, possible exceptions, multi-platform information, limitations?

Edit: links to the classes, procedures and functions give some more information, but it is still very limited.
« Last Edit: April 17, 2018, 10:29:45 am by tverweij »


  • Guest
Re: Blogs
« Reply #6 on: April 17, 2018, 10:48:14 am »
To give an example, I was looking for the workings of the dynamic arrays.
To find out houw it worked, I needed to go like everywhere to get bits of information - combined (including the help of some old Borland documentation) I finally found enough information to make a decision.

What I needed:
1. How is a dynamic array stored in memory
2. How is a SetLength of a dynamic array handled
3. How do I handle heap fragmentation when free memory is enough, but no free block is large enough.

Where I found it:
1. Old Borland documentation (sorry, I am not going to dive into the compiler code to find out) - only have to hope that the FPC implementation is the same as it is not mentioned in the prog.pdf.
2. Don't know anymore - but on the Freepascal docs (internet) it is not mentioned that SetLength is ALWAYS returning a NEW dynamic array, even when you are thrinking the array it is copied.
3. Found it in the prog.pdf of FPC

This meant 3 days of reading and searching for all bits and pieces.

But it looks like its my problem - looking at the current answers.
Maybe I am to lazy to use open source .... (I am not using it because it is free; I tried Delphi and found that Lazarus is a better editor than the Delphi one, and I always - still - paid Microsoft, so costs are no problem).
I need to earn my income with programming - so three days of searching means three days no income.


  • Sr. Member
  • ****
  • Posts: 261
Re: Blogs
« Reply #7 on: April 17, 2018, 10:57:24 am »
To give an example, I was looking for the workings of the dynamic arrays.
The documentation of the Free Pascal compiler, language, and RTL is here:
You will find it from the Free Pascal main-page under 'Documentation':
Dynamic arrays are documented here:
The SetLength call will make sure the reference count of the returned array is 1, that is, if 2 dynamic array variables were pointing to the same memory they will no longer do so after the setlength call:
I need to earn my income with programming - so three days of searching means three days no income.
What are your plans on how to give some of the income you earn by open source tools back to the maker of the tools or the community?
« Last Edit: April 17, 2018, 11:08:00 am by mse »


  • Jr. Member
  • **
  • Posts: 78
Re: Blogs
« Reply #8 on: April 17, 2018, 04:23:11 pm »
Hello Tverweij!
You're right, things here are not very practical.
I follow Lazarus for a few years (I do not make money from it yet), there are some quirks here ...
There is no solid organization that maintains Lazarus and FPC, though these tools are fantastic.
I imagine that the main maintainers of the project are not supported by the Lazarus / FPC pair, but rather by what they should have developed with Lazarus / FPC. I also imagine that there is not an exclusive dedication by the project maintainers.
The fact that I imagine this or that is also due to this inconsistency of communication, this fault between maintainers and users.
The project maintainers are excellent programmers, but for the rest I do not know.
Sometimes someone comes up with suggestions for improvements around these tools, such as the website, the wiki, the forum, the logo ... and some forks appear because of the problems that also related to what you reported.
I sometimes think that the near-inexistence of a solid organization behind Lazarus is due to the similarity to Delphi, and even if everyone believes they are independent tools, the current owner of Delphi may not legally believe, and this would bring legal insecurity to anyone behind Lazarus.
It's a personal vision, I might be wrong.



Get Lazarus at SourceForge.net. Fast, secure and Free Open Source software downloads Open Hub project report for Lazarus