Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

deivis

Problema ao sair do campo com data.

Recommended Posts

O meu problema é o seguinte, tenho um DBEdit que está com o DataField com um campo do tipo Date, este está com a Propriedade EditMask assim:__ /__ /____ , quando eu passo pelo campo sem digitar nada, não ocorre nenhum erro, mas caso acrescente uma data qualquer e depois a removo para deixar o campo vazio, no momento em que saio deste campo ocorre o seguinte erro: Econvert with message "__/__/____" in not valid date.É que as vezes é necessário deixar este campo vazio, então gostaria de saber como posso contornar este erro?Já tentei usar tratamento de excessão, mas me parece que funciona apenas com Edit.Atenciosamente, Deivis.

Compartilhar este post


Link para o post
Compartilhar em outros sites

porque você não usa um datetimepicker???se voc~e apertar Esc quando o foco esta na caixa ela da erro tambem???

quando precisono o Esc realmente não ocorre o erro, mas o usuário não saberá que se pressionar o Esc não ocorre o erro, então tenho de resolver de uma outra maneira.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no evento onExit você verifica, se o texto da caixa for igual a __/__/____ai você faz o o programa apertar o esc!!!sacou??

como faço isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente o seguinte, vá no FieldEditor e selecione o seu campo Data, vai no Evento OnSetText e faça algo do tipo:

 

if Text = '  /  /	' then	Sender.AsString:=''else	try		Sender.AsString:=DateToStr(StrToDate(Text));	except		Sender.AsString:=''		end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou.Agora gostaria de saber como é que posso validar a data por exemplo se o usuário digitar só: 10/10/e deixar o ano em branco, ou digitar só o ano e o restante em branco, gostaria de exibir uma mensagem de erro para o usuário, e não a mensagem de erro do delphi.

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando estiver debugando ele ira dar a msg do delphi e após isso a sua...mas no exe fica normal a sua!!! try strtodate(edtdata.text); except showmessage('preencha direito'); End;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.