【发布时间】:2011-11-11 09:42:33
【问题描述】:
我正在使用 Delphi 的“常规”对接(DockSite = True 和 UseDockManager = True)。现在有几个 DockSite 控件和几个可停靠表单。但是,并非每个可停靠表单都应该放在每个停靠站点中。
表单知道它们应该停靠什么样的控件;控件,OTOH,不知道接受或不接受什么形式。
我现在的问题是,有几个事件发生了,您可以在其中取消拖放(或拖放)操作:DragOver、StartDock 等。但这些都发生在“接收”端,从不在被丢弃的控件的一侧;这就是我想拥有它的地方——以便停靠的表单可以拒绝停靠到某个控件。
是否存在这样的事件,是我忽略了什么,还是我必须以不同的方式解决这个问题?
【问题讨论】:
-
如果设置正确,取消任一侧的扩展坞应该可以正常工作。拒绝停靠的目的地是否对您不起作用?
-
我希望表单尽可能“可插入”,并包含所有必要的逻辑(以及对业务类的引用);但我想让目标控件不了解它们将包含的表单。将来,我可能需要添加新的(类)可停靠表单。
-
你不能为你的可停靠表单使用基类吗?这将显着减少控件的占用空间。
-
我知道这在 JVCL Jvdocking 控件提供的扩展停靠功能中是可能的。
-
@JerryGagnon:使用基类如何减少停靠控件的占用空间?