gpt4 book ai didi

delphi - 如何在构造函数中调用需要设置控件“Parent”的函数?

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

我有一个TCustomControl,我必须在构造函数中调用一些函数,这些函数要求控件具有Parent属性集。我尝试先设置它,如果我在运行时创建控件的实例,它会起作用,但是当我想在设计时将其放在表单上时,会出现访问冲突。我怎样才能解决这个问题 ?

constructor TPathHolder.Create(AOwner: TComponent);
begin
inherited;
Parent:=TWinControl(AOwner);

//.....that function here....
end;

最佳答案

不要在构造函数(或控制代码内的任何部分)中分配控制父项。在控件内部设置父控件本身会干扰VCL框架在设计和运行时的工作方式。

相反,您可以重写SetParent方法,并在那里进行初始化。

procedure SetParent(AParent: TWinControl); override;

procedure TMyControl.SetParent(AParent: TWinControl);
begin
inherited;
// put custom initialization code here
end;


请记住,在控件生命周期中可以多次调用此方法,并且传递的AParent可以为nil。

关于delphi - 如何在构造函数中调用需要设置控件“Parent”的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27093505/

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