Fórum Herdando a classe TStringField #613988
02/02/2021
0
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)