gpt4 book ai didi

delphi - 创建时约束组件父级

转载 作者:行者123 更新时间:2023-12-03 15:43:48 25 4
gpt4 key购买 nike

我希望能够限制组件的创建位置。

例如,TMyChild 可以是 TButton,TMyParent 可以是 TPanel,当我将 MyChild 放到其他组件上时,我希望 MyChild 检查是否它是否正在 TMyParent/TPanel 中创建。

如果是,那么就可以这样做,如果不是在 TMyParent/TPanel 中创建,则取消TMyChild 创建并显示一条消息,内容如下:“抱歉,MyChild 需要在 MyParent 中创建!”。

谢谢!

最佳答案

您必须覆盖 Controls.TControl.SetParent方法。

  TMyChild = class(TControl)
protected
procedure SetParent(AParent: TWinControl); override;
end;


procedure TMyChild.SetParent(AParent: TWinControl);
begin
if (AParent <> nil) then
begin
if not (AParent is TMyParent) then
raise Exception.CreateFmt('Sorry, MyChild needs to be created in MyParent!', [ClassName]);
end;
inherited;
end;

关于delphi - 创建时约束组件父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9477468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com