如何让我的自定义控件在设计时完全可点击?

How can I make my custom control fully clickable at designtime?

我创建了一个派生自 TScrollingWinControl 的自定义控件,并从其构造函数创建了另一个派生自 TGraphicControl.

的自定义 class 的新实例

除设计时外,控件工作正常。如果我使用鼠标单击控件的滚动框部分,那么 Delphi 设计器会显示控件的抓取手柄,并且可以从那里移动和调整大小等。但是,如果我单击控件的位置我的 TGraphicControl 是父控件 (TScrollingWinControl) 不显示抓取手柄并且不能移动或调整大小。

所以我的问题是,我如何告诉我的自定义控件,通过单击我父项中的 TGraphicControl,应该允许在设计时移动和调整大小?

我尝试查看 csDesignInteractive 等 ControlStyle 标志并重建包并在设计时进行测试,但似乎没有任何区别。

我也尝试将我的 TGraphicControl 设置为 Enabled := False 并在设计时再次重建包和测试,但这里的区别在于 TGraphicControl 现在可以在设计时选择任何标准控件,只是它现在有自己的抓取手柄而不是父控件 (TScrollingWinControl)。

我需要做什么才能在单击 TGraphicControl 时父控件 (TScrollingWinControl) 显示抓取手柄并且可以移动和调整大小?

当我问出问题时,我意识到了答案。

从我创建 TGraphicControl 的构造函数中,我为所有者传递了 nil。我现在将其更改为 Self 并且控件现在的行为正确,因为在设计时选择我的控件的任何部分都会显示父 TScrollingWinControl.

的抓取手柄