Hola rogelio.
Yo lo haria con
TMaskEdit, te va a evitar un montón de verificaciones...
La máscara podés definirla en diseño desde la propiedad
EditMask del
TMaskEdit haciendo doble click sobre ella.
En el ejemplo la defino por código por que resulta más claro que explicar todos los pasos para hacerlo en forma visual.
Un ejemplo muy sencillo como para orientarte:
Código:
...
/* Form1 OnShow: ajustar máscara */
void __fastcall TForm1::FormShow(TObject *Sender)
{
MaskEdit1->EditMask = "!99/99/0000;1;_"; // mascara: dd/mm/aaaa
MaskEdit1->Text = "";
MaskEdit1->AutoSelect = false;
}
/* MaskEdit OnExit: verificar que la fecha es válida */
void __fastcall TForm1::MaskEdit1Exit(TObject *Sender)
{
if (MaskEdit1->Text != "") {
try {
StrToDate(MaskEdit1->Text);
}
catch (...) {
ShowMessage("Error en la fecha ingresada");
MaskEdit1->SetFocus();
}
}
}
Para más información sobre las máscaras, busca en la ayuda de Builder con la palabra :
FormatMaskText
Saludos.