Lazarus & FPC documentation lazarus / 21-General ---------------------------------------------------------------------- Andrew1020 · 2025-06-28 10:47 Looking at the FPC & Lazarus documentation, it does show that it is extensive.  But it looks disordered.  Just like I have suggested to the GNU Emacs Team to produce commercially available documentation on the Emacs system and all the programming language modes that can be used with it.  Comprehensive documentation on any topic would drive acceptance of a software system. I believe the Lazarus team should also consider moving and merging the FPC IDE into the Lazarus IDE so that Lazarus will function like Embarcadero's Delphi 12 IDE and future versions. ---------------------------------------------------------------------- Martin_fr · 2025-06-28 11:03 Quote from: Andrew1020 on June 28, 2025, 12:47:25 pmI believe the Lazarus team should also consider moving and merging the FPC IDE into the Lazarus IDE so that Lazarus will function like Embarcadero's Delphi 12 IDE and future versions. I seem to be missing something about the above sentence. At least I can not make much sense of it. With the "FPC IDE", do you mean the command line IDE "fp.exe" (or without .exe extension on Linux) that comes with the compiler itself?  If so, how does that have any connection to "Delphi 12" (which I am pretty sure is a WIN-GUI app, not command line)? If not, then what? Also about "more like "Delphi 12"... Well, while I don't have it around for testing, I am sure it has a great lot of features and various differences to Lazarus and/or FPC. Different representation, differences in the Pascal language. So it would really help if you pointed out exactly which of those. Mind though, if it is about Pascal Language => there is more available in FPC 3.3.1. There are various discussions on that, to read up on the when and what (and what not). In case it relates to any of them, it be better to join the existing threads on those topics. If that "moving the fpc IDE into Lazarus" somehow means to build a release with 3.3.1, that has been ask before, and the answer was (and still is) that Lazarus releases will only be made with released fpc versions. ---------------------------------------------------------------------- PascalDragon · 2025-06-28 14:18 Quote from: Andrew1020 on June 28, 2025, 12:47:25 pmJust like I have suggested to the GNU Emacs Team to produce commercially available documentation on the Emacs system and all the programming language modes that can be used with it.  Comprehensive documentation on any topic would drive acceptance of a software system. You are aware that both FPC and Lazarus are driven by volunteers? We are already stretched thin as it is, there definitely won't be any commercial documentation made by us. Quote from: Andrew1020 on June 28, 2025, 12:47:25 pmI believe the Lazarus team should also consider moving and merging the FPC IDE into the Lazarus IDE so that Lazarus will function like Embarcadero's Delphi 12 IDE and future versions. No. The purpose of the text mode IDE is to be a low dependency IDE for systems and use cases when a full blown GUI isn't feasible or wanted. The text mode IDE and Lazarus are different by design. ---------------------------------------------------------------------- Martin_fr · 2025-06-28 15:02 About the documentation, on the Lazarus site we have Don Siders, who dedicates a lot of time towards the documentation. For all I can say, he will surely welcome any serious help offered. If you have concrete ideas, and if you are willing to spend your own time, writing help texts, then you should contact him. - Discuss with him which style is acceptable. - Our docs are FpDoc based. But FpDoc has the abilities to add "topics" (Articles on any subject, linked from other help items). If you want  to contribute to the wiki => you are welcome. As for help in "book form": Here too, anyone is welcome to write such a book. Despite the point by PascalDragon, that the existing teams have little time already, the existing teams are software developers. So the skills in the teams are not the skills usually needed for writing "professional help/documentation books" (though of course I do not know to which extend individual team members may possess both sets of skills / Actually, some have done, see the bookstore). There are also some free PDF books available. But in the end, if more documentation (outside the FpDoc driven docs) is wanted, then it will have to come from contributors. ---------------------------------------------------------------------- Andrew1020 · 2025-07-16 09:28 Thanks all of you for your replies.  I now understand why fpc and lazarus are different by design and meant for different platforms. The Basic Pascal Tutorial was okay, but the OOP with Free Pascal and Lazarus was not - it would have to start from the beginning before programming with widgets was introduced. I would like to be able to use Lazarus for very simple CLI programs, but it seems to insert all the "$ additions" when I try to create a bare source file.  Once I am confident with simple source code, will I be able to go more into and use Lazarus further.  I have also requested at least one or two book publishers to print books on Lazarus such as Packt. I hope they can find the right authors and publish Object Pascal books using the Lazarus IDE that are helpful as tutorials and learning guides. ---------------------------------------------------------------------- marcov · 2025-07-16 10:06 I use lazarus all the time. The only catch is that a "console program" and a "console application" are two different entries. The "Console Application" entry of lazarus uses a TApplication like setup for Console applications. To generate exes without the application framework use either "Simple Program" or "Program". The latter adds some stock mode directives. I mostly use "Simple Program" and add my own directives since I prefer Delphi mode (IMHO Lazarus should have a global setting to generate Delphi mode units as much as possible). ---------------------------------------------------------------------- paule32 · 2025-07-16 10:26 can you give me the Contact Details of Don Siders ? ---------------------------------------------------------------------- marcov · 2025-07-16 11:08 Look in the Documentation forum in the FPC part of the forum. Post or PM him there. ---------------------------------------------------------------------- paule32 · 2025-07-16 16:56 I can not private message him, so I would drop a Message there in the Hope he (donsiders) read it ... Hello donsiders - you are Don Siders ? I found you mentioned in the Lazarus Forum ... And I was seeing that you take many Time efforts to documenting the FPC Project ... I would ask you, if we can bring us together in write Documention ? Because I had start a own Documentation Project, too. The Goal is / was to translate the English Documentation to German for German speaking/writer/listener ... It would be glad, if you can send a Feedback ... ---------------------------------------------------------------------- wp · 2025-07-16 23:26 Quote from: paule32 on July 16, 2025, 06:56:10 pmHello donsiders - you are Don Siders ? His user name is "dsiders". Send him a PM, use "dsiders" as recipient. Or find one of his forum posts, click on his name and then, at the left: "Send PM". ---------------------------------------------------------------------- paule32 · 2025-07-17 06:27 He block me of his PM List. And my Post in the Translation Section of this Forum was cancel/remove. So I assume, no Help for documenting FPC and Lazarus for German Users is not wanted ... ---------------------------------------------------------------------- Martin_fr · 2025-07-17 08:43 Quote from: paule32 on July 17, 2025, 08:27:11 amAnd my Post in the Translation Section of this Forum was cancel/remove. When did you make that past? I don't see any recent post in the deletion log (neither by your name, nor that board) ---------------------------------------------------------------------- paule32 · 2025-07-17 11:10 I drop a Message yesterday. - tried per PM - fail - tried per Post in the Translation Forum - yesterday, fail (cancel/remove) I don't can find my Post that I drop - but I could read it yesterday evening - then today Morning - the Post fly away ... To see, what I did (began) already, you can visit my GitHub Account Repro: https://github.com/paule32/Free_Pascal_Compiler_Documentation ---------------------------------------------------------------------- marcov · 2025-07-17 11:59 Yesterday afternoon there was a time the forum was badly reachable (the usual AI scrapers I assume). Maybe try again. ---------------------------------------------------------------------- Martin_fr · 2025-07-17 12:01 Quote from: paule32 on July 17, 2025, 01:10:45 pm- tried per Post in the Translation Forum - yesterday, fail (cancel/remove) I don't can find my Post that I drop - but I could read it yesterday evening - then today Morning - the Post fly away ... I have no idea what may have happened to that post. I am fairly sure it wasn't intentionally deleted by a moderator. If it was it would automatically be logged, and the log does not show any post in that board having been removed. In any case, that would have had to be a Moderator. Don isn't in that group. So he could not have removed it (if he thought he had a reason). And there also was no report by anyone to moderators for any post in that board. I pinged the server admin, if he has any idea... Not sure if that will bring up anything. In any case, since it wasn't moderated, you can try again. I don't know about Don's personal settings for PM. So I don't know why you couldn't PM him. That isn't a matter of moderation or admin. So whatever settings he has, it is nothing that I would have anything to do with (unless he says, that you should be able, and there is a question if there is an error on the server...) In any case, I have pinged him directly now (email), to draw his attention to this thread. Not sure when he will have that. But if he is interested I would think that he will drop a note here. (just give him a little time). ---------------------------------------------------------------------- AlexK · 2025-09-20 01:18 Quote from: Andrew1020 on June 28, 2025, 12:47:25 pmJust like I have suggested to the GNU Emacs Team to produce commercially available documentation on the Emacs system Emacs is the best documented UX system in existence. "C-h r" to access main info system. Emacs is fully introspective and discoverable, any keymap is a function that can be jumped to and debugged immediately. Even those Emacs Lisp functions that are implemented in C can be jumped to if sources are installed, it opens a C file and points to a function that implements it. I'm exploring a feasibility of extending Lazarus by a package that implements some Emacs(and some Vim) editing features instead of enhancing support for FPC in Emacs. For example a simple command that scrolls screen so that a line where cursor is located ends up in the middle of the screen. It's how code in Emacs/Vim is read, moving cursor to a point of interest(not arrow keys) and centering that location on page. Or the fact that Lazarus can't focus windows without mouse. Like moving focus to Code Explorer when focus is in Source Editor and then moving focus back to editor.(classic floating windows layout can use OS keymaps though) ---------------------------------------------------------------------- dseligo · 2025-09-20 07:25 Quote from: AlexK on September 20, 2025, 03:18:50 amOr the fact that Lazarus can't focus windows without mouse. Try pressing F11 and F12. QuoteLike moving focus to Code Explorer when focus is in Source Editor and then moving focus back to editor.(classic floating windows layout can use OS keymaps though) To focus Code explorer you can set desired key in Key Mappings (search for 'Toggle view Code Explorer'). ---------------------------------------------------------------------- AlexK · 2025-09-20 15:18 Quote from: dseligo on September 20, 2025, 09:25:45 amQuote from: AlexK on September 20, 2025, 03:18:50 amOr the fact that Lazarus can't focus windows without mouse.Try pressing F11 and F12. To focus Code explorer you can set desired key in Key Mappings (search for 'Toggle view Code Explorer'). It doesn't work with "docking of IDE windows" enabled in Tools->Options->Docking/Anchordocking. Keymaps for toggle commands in View menu are ignored, no-op. Docking layout seems to be more ergonomic when debugging the IDE itself, easy to move second instance of IDE to other dekstop workspace, etc. ---------------------------------------------------------------------- n7800 · 2025-09-20 17:35 Quote from: AlexK on September 20, 2025, 05:18:45 pmIt doesn't work with "docking of IDE windows" enabled in Tools->Options->Docking/Anchordocking. Keymaps for toggle commands in View menu are ignored, no-op. Unfortunately, this is a long-standing issue. But it doesn't affect all windows. Quote from: AlexK on September 20, 2025, 03:18:50 amEmacs is the best documented UX system in existence. "C-h r" to access main info system. Emacs is fully introspective and discoverable, any keymap is a function that can be jumped to and debugged immediately. Even those Emacs Lisp functions that are implemented in C can be jumped to if sources are installed, it opens a C file and points to a function that implements it. I'm not sure what exactly you're talking about. Are you talking about documentation (on websites or the "docs" folder), hints in the IDE, or navigation in code? To display function prototypes (and even descriptions from the documentation), simply hover the mouse over them. There are numerous options for this, and packages ("TurboPowerIProDsgn"). The Object Inspector also displays property help in the bottom panel. During debugging, when the program is stopped, you can hover the mouse over any variable, and its current value will be shown. This also depends on many options and the specific debugger. And to navigate through the code, simply right-click and select "Find declaration..." or many other commands. Quote from: AlexK on September 20, 2025, 03:18:50 amFor example a simple command that scrolls screen so that a line where cursor is located ends up in the middle of the screen. It's how code in Emacs/Vim is read, moving cursor to a point of interest(not arrow keys) and centering that location on page. Window scrolling while navigating through the code is controlled by the options in the "CodeTools > General" category. Or you can scroll the text "in place" using the [Ctrl+Up/Down] keys. I hope this information helps. There are many more useful features. If you have problems with these features, please create (read) separate threads, as they are off-topic. ---------------------------------------------------------------------- AlexK · 2025-09-20 19:05 Quote from: n7800 on September 20, 2025, 07:35:56 pmI'm not sure what exactly you're talking about. Are you talking about documentation (on websites or the "docs" folder), hints in the IDE, or navigation in code? Emacs docs as a big searchable catalog is always a part of Emacs interface. Now about introspection in Emacs. There's a feature in Emacs that prompts you to enter any keymap and it shows a help buffer with the info about a function that implements that keymap. Any keymap In Emacs is implemented as an interactive function. From that help buffer you can go directly to a file where that function is defined. With a cursor inside that function's body you can press Ctrl-Alt-x and that function will be step-debugged when called. That's how Lisp Machine works which Emacs is. I'm exploring how to approach Lazarus, where things are defined. Quote from: n7800 on September 20, 2025, 07:35:56 pm Window scrolling while navigating through the code is controlled by the options in the "CodeTools > General" category. Or you can scroll the text "in place" using the [Ctrl+Up/Down] keys. It should be one keymap to position a line with cursor exactely in the middle of the screen. In Emacs cursor is moved by Ctrl-f(forward), Ctrl-b(back), Ctrl-P(up), Ctrl-n(down). While moving cursor a line it is on currently can be centered on screen by Ctrl-l. (and Ctrl on keyboard is usually mapped to Caps or a key below X(on the left of Space to press by thumb finger) ---------------------------------------------------------------------- n7800 · 2025-09-20 21:15 Quote from: AlexK on September 20, 2025, 09:05:43 pmThere's a feature in Emacs that prompts you to enter any keymap and it shows a help buffer with the info about a function that implements that keymap. By "keymap" do you mean the keyboard combination (shortcut)? In the "Menu > Tools > Options" dialog there is a "Editor > Key Mappings" category, which lists all IDE Commands, and also lets you search by name and keyboard shortcut (both in the text and in a separate window). Quote from: AlexK on September 20, 2025, 09:05:43 pmIt should be one keymap to position a line with cursor exactely in the middle of the screen. In Emacs cursor is moved by Ctrl-f(forward), Ctrl-b(back), Ctrl-P(up), Ctrl-n(down). While moving cursor a line it is on currently can be centered on screen by Ctrl-l. It's easy to implement! You can create a feature request on the bug tracker, or I can do it for you? Quote from: AlexK on September 20, 2025, 09:05:43 pmWith a cursor inside that function's body you can press Ctrl-Alt-x and that function will be step-debugged when called. I mentioned code navigation above (and the documentation in the "Lazarus\docs" folder and IDE code hints). In any case, this is the "Lazarus & FPC documentation" thread. Please create another one if you'd like to discuss any other features. ---------------------------------------------------------------------- AlexK · 2025-09-20 22:19 Quote from: n7800 on September 20, 2025, 11:15:35 pmIn any case, this is the "Lazarus & FPC documentation" thread. Please create another one if you'd like to discuss any other features. That mentions Emacs and IMO a mistake about its documentation system. I'm exploring Lazarus and docs with some purpose that I described and not discussing feature requests for a non-commercial project. (besides that bug on gitlab regarding focus in IDE windows there's also crashing in Wayland session while debugging, at least). ---------------------------------------------------------------------- dsiders · 2025-10-31 18:09 Quote from: paule32 on July 16, 2025, 06:56:10 pmHello donsiders - you are Don Siders ? I found you mentioned in the Lazarus Forum ... And I was seeing that you take many Time efforts to documenting the FPC Project ... I would ask you, if we can bring us together in write Documention ? Because I had start a own Documentation Project, too. The Goal is / was to translate the English Documentation to German for German speaking/writer/listener ... It would be glad, if you can send a Feedback ... First of all, my apologies for the delay in responding. I focus on maintaing LCL and LazUtils docs. I have made a few, scattered contributions to RTL and FCL docs, but I cannot speak for the FPC side of things. Currently, there is no infrastructure in place for maintaining translations for the Docs. Like separate directory trees and the production processes needed to output the CHM and HTML formats using language-specific content. It would also be a very time consuming effort. Currently, there are close to 26,000 individual generated topic files for LCL and LazUtils. For RTL and FCL, I'm sure that number would be exponentially higher. And, while automated translation tools are better than they have ever been, my experience with Russian to English tools show they are pretty limited for real world, hands- off usage. The goal is worthwhile. But I don't what advice I can really offer. But if you have a any specific questions, I will try to answer as best I can. ---------------------------------------------------------------------- marcov · 2025-10-31 20:28 (IMHO that is for getting it all nice and generate several translation sets at once. If you just want to generate docs for your translated German fpdoc files, that is a day of hacking and then it is up. If you really want to, you can do a lot. Basically just hunt down the strings in fpdoc and translate them, rename the existing XML dir, and put your own in place and run with existing infra. Lazarus has a somewhat nicer .lpr to build the docs, and the makefile mess of FPC is a bit harder on non unix, but roughly it is equivalent. But this topic already came up at lazarusforum.de a few years ago, IMHO the manpower is simply not there. At that time the "Executing Programs" in the wiki was already 5+ years out of date. If translating the docs and more importantly, keeping the docs was realistic, such key topics in the wiki would be up to date. )