views:

372

answers:

2

I googled for dockable forms in delphi and found this:

That's not so difficult.
First off: The windows in the Delphi IDE aren't MDI forms, by SDI forms.
Now to create a dockable window.
Form2 will be dockable and Form1 will be the place to dock it to. Place a control (such as a TPanel) on Form1 to serve a DockSite. Make sure that you set the DockSite and the UseDockManager properties to true for that control.
For Form2 set the DragKind to dkDrop, the DragMode to dmAutomatic and UseDockManager to true.
That was the basic dock function. If you run your program, show the Form2 and drag that form over the docksite, it should dock at that site. You can even undock it by grabbing the "caption" as you have seen in the IDE.
The dock-method of the IDE is a little more complex, since you don't see the docksite. I think, you need to write a Form1.OnDockOver or Form1.OnDockDrop to perform that. That (Those) event(s) need to show the docksite at the appropriate location.

My question is about the last line (dock-method of the IDE), because the method described above moves the dockable form very slow.

I'm asking how to do the IDE method or eventually make the basic dock method without the very slow freezing movement of the dockable form.

+5  A: 

Have a look at the Using the TDockTabSet component article by Jeremy North. It is a few years old but should give you some helpful pointers.

stukelly
My vote limit is reached,for which I'm sorry.But I promise to upvote it later! :)
John
Thanks John. I'm glad I could help.
stukelly
A: 

Try the JVCL Docking library