如何在编辑 Delphi 表单时拦截控件移动

How to intercept control move when editing a Delphi form

我正在开发一个可视化组件 (VCL),一个专门的 TPanel。当用户在编辑表单时移动放在我的特殊面板上的控件时,我需要拦截。我需要拦截移动以调整放置在同一特殊面板上的其他控件的视觉属性。

我的问题是:如何在 intercept/detect/react 中移动控件放在 TCustomPanel 派生组件上,同时用户正在 IDE 中编辑表单?

您可以覆盖容器的 AlignControls 方法 TPanel. AControl 参数将告诉您哪个子控件被移动或插入到容器中并做出相应的反应。然后,您可以根据需要调整其他子控件的位置。