Fórum Validar Data - Na conversão da erro... #185439

30/09/2003

0

Ñ to intendendo...
Tenho esse codigo no onexit do MaskEdit1

try
:arrow: StrToDate(MaskEdit1.Text);
except
on EConvertError do
ShowMessage (´Data Inválida!´);

Mas qdo digito por exemplo: 12/13/03 na conversao da um BUG pra depois mostrar a SHOWMESSAGE... :roll: :roll:


Educdc

Educdc

Responder

Posts

30/09/2003

Luizfernando777

experimente isso

var
cont : integer;
begin
if (Sender is TMaskEdit) then
begin
cont := Length( Trim( (Sender as TMaskEdit).Text ) );
try
if (Sender as TMaskEdit).Text = ´ / / ´ then
begin
exit;
end
else if cont <= 7 then
begin
(Sender as TMaskEdit).Clear;
exit;
end
else
begin
(Sender as TMaskEdit).Text := DateToStr(StrtoDate((Sender as TMaskEdit).Text));
end;
except
on Exception do
(Sender as TMaskEdit).SetFocus;
end;
end;
end;


Responder

Gostei + 0

30/09/2003

Educdc

:arrow: (Sender as TMaskEdit).Text := DateToStr(StrtoDate((Sender as TMaskEdit).Text));

Da erro nessa conversão...


Responder

Gostei + 0

30/09/2003

Luizfernando777

estranho,
aqui no meu projeto funciona
tanto que testei novamente


Responder

Gostei + 0

30/09/2003

Educdc

qdo vc digita uma data inválida o q acontece?


Responder

Gostei + 0

30/09/2003

Luizfernando777

ele não sai do MaskEdit
e aí o q acontece


Responder

Gostei + 0

30/09/2003

Educdc

:arrow: ta dando esse erro:

Projec Project1.exe raised exception class EConvertErro with message ´12/13/03´ is not a valid date´. Process sotpped. Use Step or Run to continue.


Responder

Gostei + 0

30/09/2003

Luizfernando777

Manda o projeto exemplo para mim,
sem o executavel,
no meu email
luizfernando777@yahoo.com.br


Responder

Gostei + 0

30/09/2003

Educdc

kbei de mandar o mail...
da uma olhada la!!


Responder

Gostei + 0

30/09/2003

Luizfernando777

experimenta executar o
seu projeto não pelo delphi,
mas sim pelo explorer,
não vai aparecer esse erro.
é que o debug do delphi pega isso
e passa a informação para você


Responder

Gostei + 0

30/09/2003

Educdc

eh pelo explorer deu certo! Entao este erro vai sempre aparecer enquanto eu estiver testando o programa? so depois de eu instalar tudo q some? aff!!


Responder

Gostei + 0

01/10/2003

Japa

Amigo eu tambem tive esse problema e resolvi com esse codigo que consegui fazer:
data:= StrToDateDef(MaskEdit.Text, Date); if not (TryStrToDate(MaskEdit.Text, data)) then begin MessageDlg(´ Data invalida.´, mtError, [mbOK], 0); MaskEdit.Text:= DateToStr(data); end;


Ahh sim declare uma variavel local:
var data: TDateTime;


Bom eu decidi colocar a data do dia quando da o erro.. mas voce pode dar um SetFocus por exemplo... Ahhh sim coloque esse codigo no onexit de seu maskedit...

Boa sorte amigo... :wink:


Responder

Gostei + 0

01/10/2003

Jeancamila

Para ver o exemplo em tempo de execução pelo delphi é só configura-lo para isso:
Clicar em menu tools | Debugger options

Clicar na guia language exceptions e desmarcar o check box ´stop on delphi exceptions´


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar