Usar o evento OnGetText de um TField no Delphi
{ Problema:
Tenho um sistema de contas a receber, onde um campo chamado
"Tipo" contém um número inteiro que indica o tipo do
documento conforme abaixo:
1 - Promissória
2 - Duplicata
3 - Boleto
Gostaria que, ao exibir os dados (num DBGrid por exemplo),
fosse exibido o nome e não o número, ou seja, "Promissória"
em vez de "1".
Solução:
Isto pode ser feito de várias formas, mas aqui vou mostrar
como resolver usando o evento OnGetText do TField. Vejamos:
- Adicione todos os campos no Field Editor;
- Clique no campo "Tipo";
- Vá ao Object Inspector e dê um duplo-click
no evento OnGetText;
- Neste evento, digite o código abaixo:
}
procedure TForm1.Table1TipoGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if DisplayText then begin
case Table1Tipo.AsInteger of
1: Text := 'Promissória';
2: Text := 'Duplicata';
3: Text := 'Boleto';
else
Text := 'Desconhecido';
end;
end else
Text := Table1Tipo.AsString;
end;
Observações
Ao exibir será exibido os nomes. Mas ao digitar continue com os 1, 2, 3, etc. Para usar este recurso em relatórios, acesse a propriedade DisplayText em vez de AsString para obter o valor do campo.