我使用Delphi的'常規'對接(DockSite = True和UseDockManager = True)。現在有幾個DockSite控件和幾個可停靠的表單。但是,並非每個可停靠的表單都應該在每個碼頭站點中進行。如何知道控制裝置的停靠位置,以及如何防止停靠?
表格知道它們應該停靠在哪種控件上;控制權,OTOH,不知道接受與否的形式。
我的問題,現在是,有幾個事件要停止的地方,你可以取消拖/放(或拖動/碼頭)操作:的dragover,StartDock等,但這些都發生在「接收」的一面,從來沒有在正在被放棄的控制方面;這就是我想要的地方 - 因此,停靠的表單可以拒絕停靠某個控件。
有沒有這樣的事件,我可以忽略一些事情,還是我不得不以不同的方式解決這個問題?
如果設置正確,取消兩側的底座應該可以正常工作。是否有理由拒絕停靠碼頭的目的地不適合你? –
我希望這些表格儘可能「可插入」,並且包含所有必要的邏輯(以及對業務類的引用);但我想讓目標控件免於任何有關它們將包含的表單的知識。將來,我可能需要添加新的(類)可停靠表單。 – Martijn
難道你不能使用可停靠表單的基類嗎?這將顯着減少控件的佔用空間。 –