gpt4 book ai didi

delphi - 在设计时更改自定义组件中的属性类

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

我正在编写简单的组件。我想要实现的是,我的 MethodOptions 将根据我选择的方法在对象检查器中更改。

类似这样的事情:

From DevExpress cxGrid

到目前为止我编码:

  TmyMethod = (cmFirst, cmSecond);

TmyMethodOptions = class(TPersistent)
published
property SomethingInBase: boolean;
end;

TmyMethodOptionsFirst = class(TmyMethodOptions)
published
property SomethingInFirst: boolean;
end;

TmyMethodOptionsSecond = class(TmyTMethodOptions)
published
property SomethingInSecond: boolean;
end;

TmyComponent = class(TComponent)
private
fMethod: TmyMethod;
fMethodOptions: TmyMethodOptions;
procedure ChangeMethod(const Value: TmyMethod);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Method: TmyMethod read fMethod write ChangeMethod default cmFirst;
property MethodOptions: TmyMethodOptions read fMethodOptions
write fMethodOptions;
end;

implementation

procedure TmyComponent.ChangeMethod(const Value: TmyMethod);
begin
fMethod := Value;

fMethodOptions.Free;
// case...
if Value = cmFirst then
fMethodOptions := TmyMethodOptionsFirst.Create
else
fMethodOptions := TmyMethodOptionsSecond.Create;

// fMethodOptions.Update;
end;

constructor TmyComponent.Create(AOwner: TComponent);
begin
inherited;
fMethodOptions := TmyMethodOptions.Create;

fMethod := cmFirst;
end;

destructor TmyComponent.Destroy;
begin
fMethodOptions.Free;

inherited;
end;

当然,它 几乎 什么都不做(除了挂起IDE),而且我没有任何起点来搜索合适的知识来实现​​这一点。

最佳答案

如果我理解正确的话,我相信这与 Developer Express 在其 Quantum Grid 组件中实现的技术相同,用于动态显示网格中各种字段类型的不同属性。这里有对该机制的解释:Technology of the QuantumGrid

关于delphi - 在设计时更改自定义组件中的属性类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10635326/

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