2009-08-13 54 views
5

如何執行IDE方法或最終在沒有可停靠窗體的非常慢的凍結運動的情況下製作基本的停靠方法?如何在沒有可停靠窗體非常緩慢的凍結運動的情況下製作像IDE這樣的可停靠窗體?

當我用Google搜索在Delphi停靠形式,發現a post by Zibadian on Programmers Heaven

第一關:在Delphi的IDE中的窗戶都沒有MDI的形式,由SDI形式。

現在創建一個可停靠的窗口。

Form2將是可停靠的,Form1將是停靠它的地方。在Form1上放置一個控件(如TPanel)來爲DockSite服務。確保爲該控件設置DockSite和UseDockManager屬性爲true。

對於Form2將DragKind設置爲dkDrop,將DragMode設置爲dmAutomatic並將UseDockManager設置爲true。

這是基本的碼頭功能。如果您運行程序,顯示Form2並將該窗體拖到碼頭上,它應該停靠在該站點上。你甚至可以通過抓住IDE中看到的「標題」來取消它。

對我來說,該方法非常緩慢地移動可停靠窗體。然而,Zibadian的回答繼續描述IDE如何代替它:

IDE的dock方法稍微複雜一些,因爲您沒有看到docksite。我認爲,您需要編寫一個Form1.OnDockOver或Form1.OnDockDrop來執行該操作。那些(那些)事件需要在適當的位置顯示碼頭位置。

+2

您使用的是哪個版本的Delphi?在最近的版本中有一個用於此目的的ScreenSnap屬性 – BlackTigerX 2009-08-13 22:32:43

+0

Delphi 2009 Update 1-2-3-4。 – 2009-08-13 22:33:59

回答

8

看一看的Using the TDockTabSet component文章Jeremy North。這是幾歲,但應該給你一些有用的指針。

+0

謝謝約翰。我很高興能夠提供幫助。 – stukelly 2009-08-14 07:03:14

+0

我試過TDockTabSet和它的例子,它很慢,它閃爍。在我看來,它可能在當天表現不錯,但在Delphi XE或XE2上效果不佳。 – 2012-02-17 14:23:01