[lazarus] circular unit reference

Mattias Gaertner nc-gaertnma at netcologne.de
Fri Nov 14 20:53:32 EST 2003

On Sat, 15 Nov 2003 02:40:00 +0100
Florian Klaempfl <Florian.Klaempfl at gmx.de> wrote:

> Mattias Gaertner wrote:
> > 
> > This means the LCL is not any longer really platform independent. :(
> > OTOH you can now write win32 specific applications easier.
> > 
> Why? messages is a win32 specific file which is provided by lazarus for 
> other platform. It's like another couple of win32 functions you emulate.

That's the problem: the LCL does not really emulate. It makes porting easy.
So, it provides most commonly used functions of Delphi applications. The LCL
does not and can not guarantee, that they will work as the winapi
documentation. For example a function creating a win32 api button does very
different things in the gtk. Because most Delphi applications don't care for
the details, the LCL work. That's the whole magic.

By using the real messages.pp (and the other win32 api units provided by
fpc), one can use the real stuff. And this way a developer can write
programs that are win32 specific without noticing.
Of course, if a developer wants to write win32 specific stuff (like the
win32 intf itself), he needs the real stuff. Therefore I applied the
nonwin32 workaround. I just wish, there would be a better way, so that
people wanting to write platform independent code can notice win32
specifics. But I don't know no better way. So, win32 developers have to live
with it.


More information about the Lazarus mailing list