Tratando o evento EDBEditError
Olá para todos!
Estou com um problema com uma mascara. Quando o usuário sai do
component [b:36433fe74f]MakEdit[/b:36433fe74f] sem preencher a mascara por completo,
o delphi lança uma exceção EDBEditError.
Por exemplo, há um MaskEdit para data (__/__/____), e o usuário preenche
o campo apenas do seguite formato: (01/01/200_). Quando o usuário sair
do componente ([b:36433fe74f]OnExi[/b:36433fe74f]t) a exceção é lançada.
Imagino que ficaria algo semelhante ao código abaixo:
Desde já obrigado!
Estou com um problema com uma mascara. Quando o usuário sai do
component [b:36433fe74f]MakEdit[/b:36433fe74f] sem preencher a mascara por completo,
o delphi lança uma exceção EDBEditError.
Por exemplo, há um MaskEdit para data (__/__/____), e o usuário preenche
o campo apenas do seguite formato: (01/01/200_). Quando o usuário sair
do componente ([b:36433fe74f]OnExi[/b:36433fe74f]t) a exceção é lançada.
Imagino que ficaria algo semelhante ao código abaixo:
try //código except on EDBEditErro do showMessage(´Mensagem´); exit
Desde já obrigado!
Fabricio.ribeiro
Curtidas 0
Respostas
Catunda
18/06/2009
fabricio.ribeiro,
não gosto de utilizar maskedit, prefiro utilizar um campo temporário do tipo Date mesmo. Acho mais facil de controlar atraves do evento OnSetText do campo.
Costumo configurar o DisplayFormat com dd/mm/yyyy
e o EditMask com #//;1;
procedure Form1.MyDataSetVctoSetText(Sender: TField;
const Text: String);
begin
try
if Trim(Text)=´/ /´ then Sender.Clear
else
Sender.AsString:=Text;
except
on e:econverterror do
begin
showmessage(´A Dada Digitada : ´+Text+´ Não Corresponde a Uma Data Válida´);
abort;
end;
end;
end;
Obs: No caso acima, se for informado em branco o campo pega o valor nulo. Se deixar o ano incompleto ele completa sozinho, e se a data não for válida ele não deixa passar.
não gosto de utilizar maskedit, prefiro utilizar um campo temporário do tipo Date mesmo. Acho mais facil de controlar atraves do evento OnSetText do campo.
Costumo configurar o DisplayFormat com dd/mm/yyyy
e o EditMask com #//;1;
procedure Form1.MyDataSetVctoSetText(Sender: TField;
const Text: String);
begin
try
if Trim(Text)=´/ /´ then Sender.Clear
else
Sender.AsString:=Text;
except
on e:econverterror do
begin
showmessage(´A Dada Digitada : ´+Text+´ Não Corresponde a Uma Data Válida´);
abort;
end;
end;
end;
Obs: No caso acima, se for informado em branco o campo pega o valor nulo. Se deixar o ano incompleto ele completa sozinho, e se a data não for válida ele não deixa passar.
GOSTEI 0
Fabricio.ribeiro
18/06/2009
Obrigado [b:da12486964]Catunda[/b:da12486964], irei tentar isto.
GOSTEI 0
Fabricio.ribeiro
18/06/2009
Desculpe [b:502b5af42c] Catunda[/b:502b5af42c], mas como faço pra adicionar este ´campo
temporário´ do tipo Date no meu formulário?
Tentei o TEdit mas ele não possui as propriedades que você mensiou...
Abraços!
temporário´ do tipo Date no meu formulário?
Tentei o TEdit mas ele não possui as propriedades que você mensiou...
Abraços!
GOSTEI 0