如何让我的自定义控件在设计时完全可点击?
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
.
的抓取手柄
我创建了一个派生自 TScrollingWinControl
的自定义控件,并从其构造函数创建了另一个派生自 TGraphicControl
.
除设计时外,控件工作正常。如果我使用鼠标单击控件的滚动框部分,那么 Delphi 设计器会显示控件的抓取手柄,并且可以从那里移动和调整大小等。但是,如果我单击控件的位置我的 TGraphicControl
是父控件 (TScrollingWinControl
) 不显示抓取手柄并且不能移动或调整大小。
所以我的问题是,我如何告诉我的自定义控件,通过单击我父项中的 TGraphicControl
,应该允许在设计时移动和调整大小?
我尝试查看 csDesignInteractive
等 ControlStyle 标志并重建包并在设计时进行测试,但似乎没有任何区别。
我也尝试将我的 TGraphicControl
设置为 Enabled := False
并在设计时再次重建包和测试,但这里的区别在于 TGraphicControl
现在可以在设计时选择任何标准控件,只是它现在有自己的抓取手柄而不是父控件 (TScrollingWinControl
)。
我需要做什么才能在单击 TGraphicControl
时父控件 (TScrollingWinControl
) 显示抓取手柄并且可以移动和调整大小?
当我问出问题时,我意识到了答案。
从我创建 TGraphicControl
的构造函数中,我为所有者传递了 nil
。我现在将其更改为 Self
并且控件现在的行为正确,因为在设计时选择我的控件的任何部分都会显示父 TScrollingWinControl
.