gpt4 book ai didi

delphi - Firemonkey:如何定义一个包含另一个组件的组件?

转载 作者:行者123 更新时间:2023-12-02 09:23:04 24 4
gpt4 key购买 nike

在 Delphi 下,我想创建一个新的 firemonkey 控件,其中将包含另一个 firemonkey 控件。这并不是真正的问题,因为我可以这样做:

constructor TMyComponent.Create(AOwner: TComponent);
begin
inherited;
FBtn := Trectangle.create(self);
FBtn.parent := self;
FBtn.stored := false;
end;

但现在我想允许最终用户在对象检查器中修改 FBtn 的属性!我不知道该怎么办:(

如果我删除 FBtn.stored := False 那么我将在结构资源管理器中拥有一些名称类似于 < Components[7] > 的组件,每次我都会以文本形式查看表单,然后返回以表单形式查看结构浏览器中将出现一个新组件:(

最佳答案

您想要在对象检查器中公开的任何内容都必须在 published 属性中声明,例如:

type
TMyComponent = class(TComponent)
private
FBtn: TRectangle;
procedure SetBtn(Value: TRectangle);
published
property Btn: TRectangle read FBtn write SetBtn;
end;

constructor TMyComponent.Create(AOwner: TComponent);
begin
inherited;
FBtn := TRectangle.create(Self);
FBtn.Parent := Self;
FBtn.Stored := False;
FBtn.SetSubComponent(True);
end;

procedure TMyComponent.SetBtn(Value: TRectangle);
begin
FBtn.Assign(Value);
end;

关于delphi - Firemonkey:如何定义一个包含另一个组件的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38985078/

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