Personalmente detesto usar un MaskEdit por lo tedioso del manejo, por ello he diseñado y modificado lo siguiente (en el evento OnKeyPress del Edit):
void __fastcall TForm2::Edit1KeyPress(TObject *Sender,
char &Key)
{
int caracter;
caracter=Key;
if((caracter>='a')&&(caracter<='z'))
{
tecla=0;
}
if((caracter>=48)&&(caracter<=57))
{
Key=caracter;
}
switch(caracter)
{
case 39:caracter=NULL;
break;
case -70:caracter=NULL;
break;
case 33:caracter=NULL;
break;
case 34:caracter=NULL;
break;
case -73:caracter=NULL;
break;
case 36:caracter=NULL;
break;
case 37:caracter=NULL;
break;
case 38:caracter=NULL;
break;
case 47:caracter=NULL;
break;
case 40:caracter=NULL;
break;
case 41:caracter=NULL;
break;
case 61:caracter=NULL;
break;
case 63:caracter=NULL;
break;
case -65:caracter=NULL;
break;
case -95:caracter=NULL;
break;
case 43:caracter=NULL;
break;
case -25:caracter=NULL;
break;
case 96:caracter=NULL;
break;
case 45:caracter=NULL;
break;
case 42:caracter=NULL;
break;
case 44:caracter=NULL;
break;
case 46:caracter=NULL;
break;
case 58:caracter=NULL;
break;
case 59:caracter=NULL;
break;
case 125:caracter=NULL;
break;
case 123:caracter=NULL;
break;
}
Key=caracter;
}
//---------------------------------------------------------------------------
Este codigo también te elimina los caracteres especiales como son el +, el ., el *, etc. Supongo que podrás quitarle esto si no te es útil.
Hasta pronto.