[fpc-pascal]FP newbie

Marco van de Voort marcov at stack.nl
Thu Nov 13 14:50:39 CET 2003

> Marco,
> Let me see if I understand your concern...

Most of the things you replied to aren't my comments, anyway.

> >>wxWindows is a good library/framework indeed. But why do we need a 
> >>pascal interface to it ? It adds too many layers to the whole system. 
> >>eg: to create a button => pascal-layer->wxWindows->gtk+/motif/win32->window system window.
> How does LCL work- doesn't it abstract the widget set as well?
> LCL Button -> LCL Abstraction -> Widget Set -> Windows System

> Now, correct me if I am wrong- what is *exactly* the difference?

Your assumption that on Windows there is a window set involved.

While the picture is ok for e.g. Linux, (mainprogram->LCL->GTK->X-Windows),
on Windows LCL interfaces directly to win32 (mainprogram->LCL->Windows)

> My point of view is that by developing a wxWindows GUI, Lazarus would
> benefit from a mature and well organized abstraction layer- that is it. I
> know that I could build a wxLCL and offer it to the community sometime in
> the future.

Widget sets can be added to the LCL, so I don't think Lazarus will
have a problem with including a donated wxWindows backend
Wxwindows would be in the place of gtk so it would be


(and then wxWindows internal dependancies)

> I just wanted to know why build yet another Window System abstraction
> layer when there is good, mature, stable, and fast options around.

The LCL is much more than a widget set. It is the base building block of a
RAD system. And also it quite Delphi VCL compatible in spirit (to allow easy

Moreover wxWindows is relatively recent. It wasn't around in a stable form
when Lazarus was started. 

Why I'm lukewarm about wxWindows at best is that all widget sets that
are on multiple platforms all say the same thing as you now. (like e.g.

> Many Python users, for instance, are moving away from their older GUI
> libraries/toolkits to wxPython.

That doesn't really confort me. If I made choices like a Python user,
I would be programming Python not Pascal. 

> >>Do we really need these layers ? (wrapper wrapping a wrapper wrapping a
> >>wrapper !!!)
> >>
> >>OTOH, what we really need is an emulating toolkit atop the native window
> >>system (a la FLTK).
> Isn't FLTK something just like wxWindows? I mean, FLTK is just a toolkit 
> and one would expect it to be much less complex than wxWindows, which is 
> a full GUI framework. In the end, both come down to API calls so on the 
> developer's point of view they'd be the same on a coding perspective...

Lazarus/LCL goes a step beyond that. It is a full RADable framework, which
is fully native on Windows, without external libraries.

But I'm no lazarus member, so if you want more precise reasons, I suggest
you join lazarus' maillist.

More information about the fpc-pascal mailing list