Fórum CAMPO DATAS NO FIREBIRD 1.5 #373722
18/08/2009
0
utilizo um Dbedit para entrar com a data em um campo Date do Fire, no campo utilizo uma máscara no Tfilde (!99/99/0000;1;_) porem com máscara ou sem mascara se digito uma data no campo e imediatamente apago essa data (deixo em branco) quando retiro o foco do campo é apresentado esse erro: ´Invalid input value´, ou apresenta ´ / / is not a valid date.
qual a melhor solução para arrumar isso?
Obrigago.
Ant.neto
Curtir tópico
+ 0Posts
19/08/2009
Cb
No Exit do DBEdit tente:
try StrToDate(DBEdit3.Text); except MessageDlg(´Data invalida! Tente novamente.´,mtError,[mbok],0); DBEData.SetFocus;
Sacou?
Gostei + 0
19/08/2009
Cb
No OnExit.
Gostei + 0
19/08/2009
Ant.neto
Obrigado pela a dica mas nesse caso n funcionou, mas vou aproveitar essa dica em outros casos
Valeu.
try StrToDate(DBEdit3.Text); except MessageDlg(´Data invalida! Tente novamente.´,mtError,[mbok],0); DBEData.SetFocus;
Gostei + 0
19/08/2009
Cb
Uma data por ex: 10/02/1999 ele come o 0 do 02 e ferra tudo no StrToDate.
Mas da pra contornar usando um Maskedit.
Gostei + 0
19/08/2009
Marco Salles
Mascara do Tfield
!99/99/9999;1;_
Evento OnSetText do Tfield
procedure TForm1.SEUDataSetSEUCAMPOSetText(Sender: TField; const Text: string); begin if text=´ / / ´ then sender.Clear else sender.AsString:=text; end;
Gostei + 0
19/08/2009
Ant.neto
sender.AsString:=text;´ rs.
Brigadão.
[quote:6b17e7785b=´Marco Salles´]talves Resolva :
Mascara do Tfield
!99/99/9999;1;_
Evento OnSetText do Tfield
procedure TForm1.SEUDataSetSEUCAMPOSetText(Sender: TField; const Text: string); begin if text=´ / / ´ then sender.Clear else sender.AsString:=text; end;
Gostei + 0
23/08/2009
Cb
Digita ai 10/06/1974 e pega o valor pelo
showmessage(DBEdit1.text);
Vem algo assim 10/61/974
Só resolvi passando para o DataEdit do RX conponents.
Gostei + 0
23/08/2009
Cb
Gostei + 0
23/08/2009
Cb
01/01/1974
Retorna: /1///174
:lol:
Gostei + 0
25/08/2009
Marco Salles
possivel causa > configuração regional , diferente do contexto
[b:27470f0f60]dd/MM/aaaa[/b:27470f0f60]
Gostei + 0
27/08/2009
Cb
Não é isto. Eu estou DD/MM/AAAA.
A resolução foi pegar o RXComponents e usar o Edit de data dele.
Ou então colocar um Maskedit jogando o valor no DBEdit.
Gostei + 0
27/08/2009
Cb
Gostei + 0
27/08/2009
Marco Salles
O Post inicial era :
Nesta situação CB a saida é utilizar o evento OnSetText e alterar a Mascara
Mascara do Tfield !99/99/9999;1;_ Evento OnSetText do Tfield Código: procedure TForm1.SEUDataSetSEUCAMPOSetText(Sender: TField; const Text: string); begin if text=´ / / ´ then //Utilizando formato Regionais dd/MM/aaaa sender.Clear else sender.AsString:=text; end;
Agora , nestas condiçoes (Mascara no TFIELD DO CAMPO ) , se não funcionar
para vc estou SURPRESO... Acabei de Refazer este teste Num Campo Data
e utilizei estritamente as Recomendações acima e Não tive nenhun Problema.
Gostei + 0
27/08/2009
Joaoshi
DD/MM/AAAA
ou
DD/MM/YYYY
Gostei + 0
27/08/2009
Cb
O Post inicial era :
Nesta situação CB a saida é utilizar o evento OnSetText e alterar a Mascara
Mascara do Tfield !99/99/9999;1;_ Evento OnSetText do Tfield Código: procedure TForm1.SEUDataSetSEUCAMPOSetText(Sender: TField; const Text: string); begin if text=´ / / ´ then //Utilizando formato Regionais dd/MM/aaaa sender.Clear else sender.AsString:=text; end;
Agora , nestas condiçoes (Mascara no TFIELD DO CAMPO ) , se não funcionar
para vc estou SURPRESO... Acabei de Refazer este teste Num Campo Data
e utilizei estritamente as Recomendações acima e Não tive nenhun Problema.[/quote:9e4426ba7f]
Eu tambem. Uso delphi desde a versão 3, parei em 2005 e voltei agora. Mas a anos não usava banco de dados junto.
Será que todos meus softs anteriores foram com este problema? :P
Tente digitar a data: 10/06/1974 e pegar o valor num botão por showmessage.
Delphi 7.
Mascara: !99/99/0000;1;_
Pra não ficar como delirio meu: :lol: :lol:
[img:9e4426ba7f]http://cb.freeshell.org/Extra/Doidera.gif[/img:9e4426ba7f]
Como eu disse, peguei outro componente e não dá erro algum.
:P
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)