[Lazarus] TTabControl reverted to it's old implementation

Graeme Geldenhuys graemeg.lists at gmail.com
Wed Jul 27 19:49:01 CEST 2011


On 27 July 2011 17:00, Hans-Peter Diettrich wrote:
>> Yet when you set the Memo1.Align := alClient, then in
>> maximizes the memo to fit underneath the tabs. This is very conflicting
>> behaviour -
>
> IMO this is just one solution for above problems, where do you see any
> conflict?

What is the real (0,0) position? The one Align=alClient displays, or
the real top-left of the TTabControl.


> But what when
> a multi-line tabctrl will expand itself when tabs are added?

The solution is easy. Find the developer that suggested and
implemented multi-line tabs and SHOOT them! :) I refused to implement
that in fpGUI because it confuses the hell out of everybody and
definitely doesn't make the UI easier to use.  If you require that
many tabs, rethink your UI design. Hense the reason everybody seems to
now resort to a Treeview on the left, client area on the right. Or a
listbox type component on the left and client area on the right.

Imagine Lazarus used a multi-line tab control of the "Environment ->
Options" window. That would be somewhere around 30 tabs probably
taking up the whole screen just for the tabs alone.


> exact name of that tool]. Such tools rely on all controls being handled by a
> known widgetset, what is not true for e.g. Java (or newer Qt?)

It requires each control to have a window handle. I implemented a
similar tool for X11. But yes, the latest Qt and GTK2 now use a single
window handle per window, so such tools don't work on them any more.

My tool still works on GTK2 apps in Ubuntu 8.04 though, so GTK2
changed somewhere after that I think.


> Delphi 1 has implemented treeviews, tabs and notebooks, which have not been
> available on the Win3.x platform. When Microsoft later implemented a tabbed
> control, they didn't follow the Delphi model, so that now Delphi offers new
> Win32 (COM) compatible components, as well as legacy (Win3.1) components.

I only started using Delphi from version 4 onwards. But thanks for the
history. Now I finally know the reason for the Win3.1 tab. :-)



> control that is quite different from its Win32 counterpart. And it doesn't
> help to point out how something *should* be implemented, when an existing
> widgetset implements a different model for a complex control.

That's the challenge you guys choose for LCL, so you better live with
it. :-/  I'm afraid those incompatibilities will continue forever.


-- 
Regards,
  - Graeme -


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




More information about the Lazarus mailing list