override de classe
30/09/2004
0
Salve galera...
Vou explicar primeiro o prob:
Tenho campos no meu BD (IB) do tipo Varchar(1), por ex: Status do cliente = A - Ativo, I - Inativo
Dae qdo eu coloco isso num dbcombobox p o usuario escolher, mas em vez d escolher A ou I eu mostro p ele Ativo ou Inativo
Fazendo o seguinte:
- no CDS dou um clique duplo e seleciono o campo Status,
- Vou no evento OnGetText
Pronto isso faz oq eu quero... so q p Status saum apenas 2 opcoes... mas imagina se for p as siglas de Estados... eu jah fiz aqui... mas gostaria d mudar pois ocupa mto espaco d codigo q non eh necessario...
*-*-*-*-*-*-*-*-*-*
Solucao
Estive verificando.... isto esta na classe TStringsFields no na unit DB
esta classe possui os eventos OngetText e OnSetText
Gostaria d saber se tem como eu fazer algum tipo de override (q nem nos componentes p herdar td e acrescentar, mas ae vem outro problema, como eh q eu vou fazer os DBComponentes pegarem esse Novo tipo em vez do antigo?
Alguma solucao mais viavel? (eu non queria instalar componentes d terceiros... nem sei se tem algum q faz isso.)
Vlw
Vou explicar primeiro o prob:
Tenho campos no meu BD (IB) do tipo Varchar(1), por ex: Status do cliente = A - Ativo, I - Inativo
Dae qdo eu coloco isso num dbcombobox p o usuario escolher, mas em vez d escolher A ou I eu mostro p ele Ativo ou Inativo
Fazendo o seguinte:
- no CDS dou um clique duplo e seleciono o campo Status,
- Vou no evento OnGetText
procedure TCadCliente.CDSStatusGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
inherited;
if Sender.AsString=´A´ then
Text:=´Ativo´
else
if Sender.AsString=´I´ then
Text := ´Inativo´
procedure TCadCliente.CDSStatusSetText(Sender: TField; const Text: String);
begin
inherited;
if Text=´Ativo´ then
Sender.AsString:=´A´
else
if Text=´Inativo´ then
Sender.AsString:=´I´
Pronto isso faz oq eu quero... so q p Status saum apenas 2 opcoes... mas imagina se for p as siglas de Estados... eu jah fiz aqui... mas gostaria d mudar pois ocupa mto espaco d codigo q non eh necessario...
*-*-*-*-*-*-*-*-*-*
Solucao
Estive verificando.... isto esta na classe TStringsFields no na unit DB
esta classe possui os eventos OngetText e OnSetText
Gostaria d saber se tem como eu fazer algum tipo de override (q nem nos componentes p herdar td e acrescentar, mas ae vem outro problema, como eh q eu vou fazer os DBComponentes pegarem esse Novo tipo em vez do antigo?
Alguma solucao mais viavel? (eu non queria instalar componentes d terceiros... nem sei se tem algum q faz isso.)
Vlw
Osocram
Curtir tópico
+ 0
Responder
Posts
01/10/2004
Afarias
bom, eu diria q uma solução mais simples seria ter esse código q vc já escreveu (para sigla dos estados) em uma função -- a parte -- q vc poderia usar sempre q precisar. Todo campo estado vc faria::
Text := myUtils.DescricaoEstados(Sender.AsString);
T+
Text := myUtils.DescricaoEstados(Sender.AsString);
T+
Responder
04/10/2004
Osocram
Afarias...
Eu tinha pensando nisso... mas tava querendo tentar fazer um componente ou algo assim... Mas acho q vou fazer isso mesmo...
Vlw
Eu tinha pensando nisso... mas tava querendo tentar fazer um componente ou algo assim... Mas acho q vou fazer isso mesmo...
Vlw
Responder
Clique aqui para fazer login e interagir na Comunidade :)