Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   EditMask pequeño problema (https://www.clubdelphi.com/foros/showthread.php?t=49682)

Patho 26-10-2007 21:10:02

EditMask pequeño problema
 
Hola Muchachos, hoy me he dado cuenta de un pequeño problemita con un editmask que hasta ahora no lo he podiudo solucionar, creo que es simple la solución pero no la he visto :(

el edit tiene el siguiente formato 00.000.000\-A;1;_ es para el ingreso del rut de chile numeros (0..9) y 1 letra (k) solo si corresponde, el asunto es que si el texto del edit me queda una lines ___ de estas y salgo del edit me me lansa un error, deben estar completos todos los datos asi 00.000.000-0 aunque sean ceros, pero si un usuario lo deja incompleto _0.000.000-0 me sale el error, me dice que es un valor invalido de entrada, y mi pregunta es como puedo manejar esa entrada?? para que no permita si el usuario borra un numero no quede el underline??

otra cosa le tengo por defecto qeu sean todos 0 ningun underline se ve hasta que el usuario borra el numero, de antemano muchas gracias a sus sugerencias


salu2


chao

poliburro 26-10-2007 22:14:46

a mi no me gusta mucho el Mask edit, por lo que te aconsejo crear tu propio componente heradado del TEdit que implemente lo que requieres.

Suerte

Delfino 27-10-2007 00:16:01

Cita:

te aconsejo crear tu propio componente heradado del TEdit que implemente lo que requieres.
Para q? si la propiedad puede hacer lo mismo.
sustituye los ceros por nueves a ver si te deja..

Patho 27-10-2007 00:16:26

hola, el unico inconveniente que tengo al crear el componente es que nunca he hecho uno, seria posible de que me explicaras como poder crearlo???


muchas gracias por tu pronta respuesta





Cita:

Empezado por poliburro (Mensaje 241554)
a mi no me gusta mucho el Mask edit, por lo que te aconsejo crear tu propio componente heradado del TEdit que implemente lo que requieres.

Suerte


BlueSteel 27-10-2007 00:59:36

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); // puede ser toRight

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...:p

Patho 29-10-2007 15:31:42

gracias BlueSteel he seguido tu consejo y me ha resultado impecable funciona de maravillas.


saludos


Patho


La franja horaria es GMT +2. Ahora son las 20:25:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi