[Lazarus] Dockable IDE

Hans-Peter Diettrich DrDiettrich1 at aol.com
Mon Mar 19 07:31:59 CET 2012


Paul Ishenin schrieb:
> 18.03.12 11:11, Hans-Peter Diettrich wrote:
> 
>> These are only different implementations of the same (TDockManager)
>> interface. I found LDockTree unusable, failing already on slightly
>> nested layouts. It also lacks layout streaming, required in applications
>> like the IDE. Dunno about the current state, though...
>>
>> I'm still waiting for a justification of:
>>  >>
>> Dodi has implemented an own vision of docking while delphi like docking
>> still works.
>> <<
> 
> Alpthough you descend from TDockManager you don't descend from TDockTree 
> which was a trial to implement delphi like dock manager.

The TDockTree and related TDockZone classes are not immediately 
applicable to the LCL and its Delphi-incompatible DragManager[Default] 
and TDragObject. In detail notebook-docking is not supported by the 
given TDockTree class, even Delphi uses further classes for that 
purpose, and for floating sites etc.

I found the TDockTree (and LDockTree) not really usable, that's why I 
used TDockManager as the base class of my DockManager. Neither TDockTree 
nor TLazDockTree support the Lazarus extensions to TDockManager.

>  > I never implemented anything Delphi-incompatible, in contrast to anchor
>  > docking.
> 
> I did not mean that you made something incompatible, just that you made 
> an own implementation which Michael probably does not use.

TDockTree is not ready for use in applications, so every application has 
to specify an working dockmanager. The "no problems encountered" 
statement is meaningless until the used dockmanager, widgetset *and* the 
unproblematic use cases are specified. Currently (trunk and 0.9.30) not 
any dockmanager is usable with the Win32 widgetset, due to bugs in the 
LCL and TDragManager, which e.g. prevent undocking a control using the 
mouse.

The IDE (see topic) is not bound to an specific dockmanager, but I have 
the impression that currently only anchor docking implements the IDE 
interface properly (if at all). This is not a matter of an specific 
dockmanager, which only manages a single docksite, but of the management 
of all dockable forms and docksites pertaining to an application, 
including save/restore of layouts.

DoDi





More information about the Lazarus mailing list