Herdando a classe TStringField
Codifiquei uma classe descendente de TStringField onde modifico o método GetAsAnsiString para resultar em dados anônimos.
Porém, meu código é usado apenas quando declaro campos persistentes no Editor de Campos do TOraQuery. Se eu não declarar os campos persistentes, minha implementação não é utilizada.
Preciso que o comportamento seja o mesmo, independente do TOraQuery ter campos persistentes ou não.
Alguém poderia me ajudar por favor?
Porém, meu código é usado apenas quando declaro campos persistentes no Editor de Campos do TOraQuery. Se eu não declarar os campos persistentes, minha implementação não é utilizada.
Preciso que o comportamento seja o mesmo, independente do TOraQuery ter campos persistentes ou não.
Alguém poderia me ajudar por favor?
unit AnonymousFields; interface uses DB, Sysutils, Classes; type TStringField = class(DB.TStringField) public //function GetValue(var Value: AnsiString): Boolean; function GetAsAnsiString: AnsiString; override; end; TWideStringField = class(TStringField) public //function GetValue(var Value: AnsiString): Boolean; function GetAsString: string; override; function GetAsAnsiString: AnsiString; override; function GetAsWideString: UnicodeString; override; end; TDateTimeField = class(DB.TDateTimeField) public function GetAsString: string; override; function GetAsDateTime: TDateTime; override; procedure GetText(var Text: string; DisplayText: Boolean); override; end; implementation { TStringField } function TStringField.GetAsAnsiString: AnsiString; begin inherited; Result := '$$$$$$$$$$'; end; { TWideStringField } function TWideStringField.GetAsAnsiString: AnsiString; begin inherited; Result := '##########'; end; function TWideStringField.GetAsString: string; begin inherited; Result := '##########'; end; function TWideStringField.GetAsWideString: UnicodeString; begin inherited; Result := '##########'; end; { TDateTimeField } function TDateTimeField.GetAsDateTime: TDateTime; begin inherited; Result := 0; end; function TDateTimeField.GetAsString: string; begin inherited; Result := '**********'; end; procedure TDateTimeField.GetText(var Text: string; DisplayText: Boolean); begin inherited; text := '**/**/****'; end; end.
Mauro Pereira
Curtidas 0