Validar Data!!!

Delphi

10/03/2003

Olah pessoal !!!

Em tenho um dbedit ligado com a tabela e quero que quando eu sair do dbedit ele valide essa data se for uma data invalida aparecer essa mensa gem ´Data invalida´ e dar um setfocus no edit.... caso deixe a data em branco ele aceite sair do campo!!!!

Usando esse procedimento eu consigo validar a data, ele deixa o usuario passar pelo campo sem digitar mas se o usuario digitar a data e apagar e tentar sai ele da uma mensagem de erro!!!!

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;

O que eu faço para ele aceitar a data em branco quando o usuario digitar a data apagar e sair!!!

agradeço!!!!!


Leandro Jacomete

Leandro Jacomete

Curtidas 0

Respostas

Anonymous

Anonymous

10/03/2003

Use o mesmo código seu, incluindo o texto em negrito:

if not TbVeiculos.FieldByName(´DT_VENC_APOL´).isnull then
begin
try
[b:aa782a6646]if DBEdit9.Text <> ´´ then[/b:aa782a6646]
strtodate(DBEdit9.text);
except
on EConvertError do
begin
showmessage(´Data Inválida´);
dbedit9.SetFocus;
end;
end;
end;


GOSTEI 0
Anonymous

Anonymous

10/03/2003

ja tentei isso!!
mas o problema que ele naum ta entrando nem no codigo para dar o erro ele da uma mensagem de erro de data que eu acho que e do delphi

Use o mesmo código seu, incluindo o texto em negrito: if not TbVeiculos.FieldByName(´DT_VENC_APOL´).isnull then begin try [b:05180c5e2b]if DBEdit9.Text <> ´´ then[/b:05180c5e2b] strtodate(DBEdit9.text); except on EConvertError do begin showmessage(´Data Inválida´); dbedit9.SetFocus; end; end; end;



GOSTEI 0
Marcelo Saviski

Marcelo Saviski

10/03/2003

[b:e86faf3635]if[/b:e86faf3635] [b:e86faf3635]not[/b:e86faf3635] TbVeiculos.FieldByName(´DT_VENC_APOL´).isnull [b:e86faf3635]then
begin [/b:e86faf3635]
[b:e86faf3635]try [/b:e86faf3635]
[b:e86faf3635]if[/b:e86faf3635] lenght(DBEdit9.Text)>0[b:e86faf3635] then [/b:e86faf3635]strtodate(DBEdit9.text);
[b:e86faf3635]except [/b:e86faf3635]
[b:e86faf3635]on[/b:e86faf3635] EConvertError [b:e86faf3635]do
begin [/b:e86faf3635]showmessage(´Data Inválida´);
dbedit9.SetFocus;
[b:e86faf3635]end;
end;
end;[/b:e86faf3635]


GOSTEI 0
Eniorm

Eniorm

10/03/2003

Procure para download no ClubeDelphi um componente chamado TDateEdit que já vem pronto para usar datas e validação das mesmas!
Só que não dá para associar com um DataSource como os dbEdit!


GOSTEI 0
Marcelo

Marcelo

10/03/2003

Voce pode fazer, nesse caso, dessa maneira...

procedure...
var
dt:TDate;
begin
try
dt:=strtodate(DBEdit9.Text);
except
showmessage(´Data inválida...´);
DBEdit9.Text:=´´;
DBEdit9.SetFocus;
end;

Valeu?
at+...


GOSTEI 0
Eniorm

Eniorm

10/03/2003

Voce pode fazer, nesse caso, dessa maneira... procedure... var dt:TDate; begin try dt:=strtodate(DBEdit9.Text); except showmessage(´Data inválida...´); DBEdit9.Text:=´´; DBEdit9.SetFocus; end; Valeu? at+...


Totalmente funcional, mas..., abaixo tá + simplificada:

No Evento OnExit do edit:

try
   StrToDate(edit1.text);
except
   on EConvertError do begin
      ShowMessage(´Data Inválida!´);
      edit1.clear; // limpa a data errada do edit
      edit1.setfocus; // se omitida, vai p/ prox. edit
   end; // fim do On Error
end; // fim do try


Fui...


GOSTEI 0
POSTAR