[Lazarus] WriteLn back to the GUI

ListMember listmember at letterboxes.org
Wed Oct 23 21:14:15 CEST 2013

On 2013-10-23 21:46, Sven Barth wrote:
> "Writeln" is a complex functionality. So you should better trust us 
> (hint: I'm a compiler developer) when we say this is more difficult 
> than you imagine.

I know you're a compiler developer; and, I have no intention of 
challenging you on that front --actually, I don't want to challenge 
anyone on any front at all, I have enough challenges as it is.

And, I am not trying to replace all of WriteLn functionality with my own 

I am guessing, just guessing, FPC uses WriteLn to communicate with other 
modules (perhaps Lazarus too), but I also need its output directly in my 

How about this:

Instead of redirecting all of its output through the callback, I only 
use callback to redirect a copy of its output --leaving the rest of its 
functionality intact?

>>> As I wrote in my post: See the CRT unit.
>>> It does exactly that. You need maybe 20 lines of code to do as you 
>>> want.
>> Will do, thanks.
>> But, let me ask this:
>> If I used the CRT unit, would I need to add it to every single unit in
>> the project that uses WriteLn?
> Michael did not say that you should use the CRT unit, but that the 
> unit implements something similar and that you should take a look at 
> it to implement your own variant of it.
> And then you need to include your own unit only once (e.g. either you 
> put the "hooking" into the initialization section or you do it at the 
> start of your program)

I took a look at crt.pas and AFAIC it is not significantly less complex 
than finding the place of WriteLn in compiler code and altering it to 
use a callback ;)

More information about the Lazarus mailing list