[Lazarus] Beyond Compare finally moved to LCL

Graeme Geldenhuys mailinglists at geldenhuys.co.uk
Sat Jun 27 12:15:05 CEST 2015


On 2015-06-27 10:31, Michael Van Canneyt wrote:
> I am strongly beginning to feel something is wrong with me...

You are predominately a backend man. ;-)

> Can you give some examples ? 

Sure...

 * Events fired in different orders depending on the widgetset
   you use. I can't remember which components it was (I think
   TListView), but if I really must I can find out exactly.

 * TStatusBar.Panels[].Width only works in LCL-Win32/64. Under
   OSX and Linux they are simply ignored. I had to apply an ugly
   "floating panel" work-around to position online/offline status
   images on the right edge of the statusbar.

 * Button (or maybe BitButton) clipped button images under OSX,
   but doesn't under Linux and Windows.

 * Properties exist on a component and available to all widgetsets,
   yet is only functional for one widgetset. The developer isn't warned
   about this in the code editor (eg: code completion popup), only in
   the Object Inspector's Restricted tab. I don't verify every single
   property I use via Object Inspector before I use it - I doubt others
   do too.

...I could list many more if I dug deeper and thought about it a bit
more. I didn't make notes of them all and in hindsight, I should have
reported them all on Mantis. My bad.

Anyway, I found these within the first day of working with a LCL
application. Yes, they might sound trivial on their own, but add them
up, and it is a huge time waster and annoyance for the developer having
to find work-arounds of something that should just work.

LCL's whole theory is making your programs portable, write once and
compile everywhere etc... But the fact of the matter is, it hardly works
out like that. I've seen it, Scooter Software has seen it, and probably
many more. As I said, I found issues like these back in 2006. It caused
so much frustration that I started a new GUI toolkit to prevent such
issues. Fast forward to 2015, and LCL still behaves the same as it did
in 2006 - that's almost 10 years later! Yes, yes, I know some things
have improved too.

I fully understand this is an open source project. Everybody wants to
work on things they like, everybody wants to introduce the newest and
latest feature or component.... Nobody wants to fix bugs. But hey, the
Lazarus project doesn't have to feel bad, Embarcadero is doing exactly
the same thing with Delphi (<sarcasm>just look at all the happy
customers in the Delphi newsgroups).


Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/




More information about the Lazarus mailing list