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ファイルに埋めずに保持する正しい方法はどうすればよいですか?.
ありがとうございました。