Hola Patho...
mira.. yo trabajo con el campo MaskEdit.. y le pongo esto 00.000.000-C;1;_
hasta el momento me ha funcionado bien...aunque si no ingreso todos los datos.. me da error... obvio...
trate de usar esto.. pero como que no me funco...
Código Delphi
[-]
If Key = #13 Then
AnsiReplaceStr(vRut.Text,'_','0');
que hace.. al presionar el Enter... me debe reemplazar el _ por Ceros (0)... pero
te recomiendo que uses un Edit... y que los caracteres los rellenes con ceros a la izquierda.. y le des formato una vez dado el enter... pero que no se ingrese el digito verificador...
mira el sgte funcion
PadString
lo que hace es rellenar un String con cierto caracter para que cumpla el largo
Ejem... un Edit1 para el rut, de largo 8.. sin punto y sin el digito verificador
se ingresa el rut 40 (cuyo digito verificador es K)
al presionar Enter, le pones este codigo
Código Delphi
[-]
If Key =#13 Then
Edit1.Text := PadString(Edit1.Text,'0',8,toLeft);
que hacer.. tomará el Edit 40 y lo transformara en 00000040, despues deberás aplicarle una rutina para calcular el digito verificador.. y lo pasas con el formato que desees...
espero que te sirva...