我使用Delphi的'常规'对接(DockSite = True和UseDockManager = True)。现在有几个DockSite控件和几个可停靠的表单。但是,并非每个可停靠的表单都应该在每个码头站点中进行。如何知道控制装置的停靠位置,以及如何防止停靠?
表格知道它们应该停靠在哪种控件上;控制权,OTOH,不知道接受与否的形式。
我的问题,现在是,有几个事件要停止的地方,你可以取消拖/放(或拖动/码头)操作:的dragover,StartDock等,但这些都发生在“接收”的一面,从来没有在正在被放弃的控制方面;这就是我想要的地方 - 因此,停靠的表单可以拒绝停靠某个控件。
有没有这样的事件,我可以忽略一些事情,还是我不得不以不同的方式解决这个问题?
如果设置正确,取消两侧的底座应该可以正常工作。是否有理由拒绝停靠码头的目的地不适合你? –
我希望这些表格尽可能“可插入”,并且包含所有必要的逻辑(以及对业务类的引用);但我想让目标控件免于任何有关它们将包含的表单的知识。将来,我可能需要添加新的(类)可停靠表单。 – Martijn
难道你不能使用可停靠表单的基类吗?这将显着减少控件的占用空间。 –