我有一个自定义组件的属性,我不希望它保存在DFM文件中。我已经重写了DefineProperties方法,不提供ReadData和WriteData过程,期望该属性不会被保存,但它仍然被保存了。
procedure TAEFDQuery.DefineProperties(Filer: TFiler);
begin
inherited;
// Set the ADO Compatibility custom properties to not be saved on the DFM
Filer.DefineProperty('CommandText', nil, nil, False);
end;
不保存此属性的原因是我已将一个项目从ADO移植到FireDAC,并创建了“虚假”属性,使一些ADO代码可以不变地运行,并将其重定向到相应的FireDAC属性。
type
TAEFDQuery = class(TFDQuery)
private
function GetCommandText: string;
procedure SetCommandText(AValue: string);
protected
procedure DefineProperties(Filer: TFiler); override;
published
property CommandText: integer read GetCommandText write SetCommandText;
end;
implementation
procedure TAEFDQuery.SetCommandText(AValue: string);
begin
SQL.Text := AValue;
end;
function TAEFDQuery.GetCommandText: string;
begin
Result := SQL.Text;
end;
procedure TAEFDQuery.DefineProperties(Filer: TFiler);
begin
inherited;
// Set the ADO Compatibility custom properties to not be saved on the DFM
Filer.DefineProperty('CommandText', nil, nil, False);
end;
为了保持兼容性,正确的方式是如何保留这些“伪”属性,而不必让它们填充DFM文件,并产生无用的真实属性副本?
谢谢。