Fórum Validar uma data(aceitar data em branco) #144709
12/03/2003
0
ALGUEM PODE ME AJUDAR:
Eu tenho uma dbedit ligado com uma tabela (interbase), esse campo e do tipo date(naum eh not null), usei esse procedimento no evento onexit do dbedit:
procedure TFrmVeiculos.DBEdit9Exit(Sender: TObject);
begin
if not TbVeiculos.FieldByName(´DT_VENC_APOL´).isnull then
begin
try
strtodate(DBEdit9.text);
except
on EConvertError do
begin
showmessage(´Data Inválida´);
dbedit9.SetFocus;
end;
end;
end;
end;
Com esse procedimento consegui resolver uma parte do problema
se o usuario passar pelos campos ele aceita o campo em branco normal, mas se o usuario parar no dbedit e digitar uma data, apagar e tentar sair ele da um erro de data invalida, e naum mostra a minha mensagem!!!
soh mostra minha mensagem quando o usuario digita a data invalida...
executando o programa usando o F7 eu percebi que ele da esse erro sem mesmo ter efetuado uma linha de comando do onexit do dbedit!!!(serah que eh uma erro padrao do delphi)
Eu preciso que ele aceite data em branco!!! e que aceite apagar uma data
e que soh de a mensagem de erro quando for data invalida
Leandro Jacomete
Curtir tópico
+ 0Posts
12/03/2003
Okama
Você tem dois caminhos, validar a data na base ou trocar por um Edit (que eu acho mais fácil) e usar esse código:
try
strtodate(DBEdit9.text);
except
on EConvertError do
[b:b6f31cbd42] if Edit9.text <> ´´ then begin[/b:b6f31cbd42]
showmessage(´Data Inválida´);
Edit9.SetFocus;
end;
end;
Gostei + 0
12/03/2003
Leandro Jacomete
Gostei + 0
13/03/2003
Okama
Em tempo de projeto abra a Table1, dê dois cliques no componente, na janela que se abrirá clique com o segundo botão e adicione todos os campos.
Clique no Campo desejado. No Object Inpector clique na aba Events e dois cliques em ONVALIDADE e insira esse código:
try
StrToDate(Sender.Text);
except
On EconvertError do
if Sender.Text <> ´´ then begin
Showmessage(´Data Inválida´);
DBEdit9.SetFocus;
end;
end;
O problema de usar isso é que sua tabela tem que ser sempre essa e se estiver usando um Query, não pode mudar a consulta e você deve prever que somente o componente DBEdit9 acessará esse evento, pois se você usar essa table em outro módulo que não exista DBEdit9 ocorrerá erro.
Um Abraço,
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)