Inserir zeros se não for completa a data

Delphi

16/10/2007

Olá.

Pessoal, to querendo saber como posso fazer uma formatação em um Edit ou um MaskEdit.
Seria assim. No MaskEdit tenho este maior necessidade porque utilizo Mysql como meu BD e ele não aceita campos vazios no MaskEdit, exemplo:

Usuario digita data: 1/1/07

Gostaria que se o Usuario digitasse o exemplo acima, no OnExit do meu MaskEdit ele formatasse inserindo zeros e alterando o campo ´ano´
Exemplo:

Usuario digita data: 1/1/07

Formataria para: 01/01/2007

E tambem validasse a data mas que validasse tambem ano bicesto se for o caso.
Poderião me ajudar?
Agradeço.

Att.


Devmedia

Devmedia

Curtidas 0

Respostas

Marco Salles

Marco Salles

16/10/2007

isto que eu chamo de tres em Um...

Formatar , inserir , validar , ano bissesto etc...

bem , várias maneiras

coloque a mascara do seu MaskEdit assim :

!99/99/9999;1;_


no evento onCreate do Form digite :

ShortDateFormat:=´dd/mm/yyyy´;


no evento onExit do MaskEdit coloque

try
maskEdit1.Text:=DateToStr(StrtoDate(maskEdit1.Text));
except
  Showmessage(´dataInválida´);
  maskEdit1.SetFocus;
end;


boa sorte...


GOSTEI 0
Devmedia

Devmedia

16/10/2007

Ok.
Muito orbrigado.
Validar a data, funcionou. Mas preencher com zeros igual informei na minha duvida.
Mão fez.

Pode me ajudar?
Att.


GOSTEI 0
Marco Salles

Marco Salles

16/10/2007

Ok. Muito orbrigado. Validar a data, funcionou. Mas preencher com zeros igual informei na minha duvida. Mão fez. Pode me ajudar? Att.


engraçado.... Aqui funcionou

Voce fez todos os [b:b4258729c1]tres[/b:b4258729c1] passos que sugeri no primeiro tópico ??????


GOSTEI 0
Devmedia

Devmedia

16/10/2007

Quando termino de digitar no MaskEdit, por exemplo:


1/1/07

Ele da erro ´Invalid input value. Use escape Key to abandon changes´
E não formata inzerindo zeros para ficar, exemplo:

01/01/2007

Utilizo delphi 7.

Agradeço à ajuda.
Att.


GOSTEI 0
Devmedia

Devmedia

16/10/2007

Mil desculpas.
Não tinha percebido a diferenca no Style que voce colocou.

!99/99/9999;1;_


Desculpe mais uma vez e Muito Obrigado pela à ajuda.
Para alguem que venha utilizar esta dica. Funciona corretamente o que nosso amigo Marcos Salles respondeu.
Att.


GOSTEI 0
POSTAR