delphi – 在设计时更改自定义组件中的属性类
发布时间:2020-12-15 09:12:09 所属栏目:大数据 来源:网络整理
导读:我正在编写简单的组件.我想要实现的是我的MethodOptions将根据方法I选择在Object Inspector中更改. 像这样的东西: 到目前为止我编码: TmyMethod = (cmFirst,cmSecond); TmyMethodOptions = class(TPersistent) published property SomethingInBase: boolea
我正在编写简单的组件.我想要实现的是我的MethodOptions将根据方法I选择在Object Inspector中更改.
像这样的东西: 到目前为止我编码: 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
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |