Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con un MaskEdit (https://www.clubdelphi.com/foros/showthread.php?t=11448)

pkbza 14-06-2004 19:25:38

Problema con un MaskEdit
 
Hola a todos
Tengo un problema con un MaskEdit, se trata que al quitarle el foco quiero verificar que este no tenga valores vacios, puesto que en ese evento paso su contenido a unas variables, por lo tanto(creo), al estar vacias me arrojan el error Invalid input value.
He tratado de comprobar los valores con un
If MaskEdit1.Text[posicion]= '' Then ....
pero no me resulta.

Agradecido de alguna ayuda, saludos

cahp 14-06-2004 20:17:19

Si es un MaskEdit puedes ponerle una mascara para que no te permita espacios.

De todas formas puedes capturar el evento OnExit, y ahi asignas el valor a un string, que te permite hacer lo que comentas.

Saludos.

pkbza 15-06-2004 18:05:38

Gracias, pero los espacios (' ') no son el problema, son los vacios (al borrar) y precisamente al pasar el contenido a la variable string con el vacio es donde se produce el error.

pkbza 15-06-2004 18:10:23

He tratado interceptar el error con esto...

procedure TForm1.MaskEdit1Exit(Sender: TObject);
var cadena:string[11];
begin
try
cadena:=MaskEdit1.Text;
except
showmessage('ingrese todos los valores a la casilla');
end;
end;

Pero no funciona

roman 15-06-2004 18:24:42

Relamente es muy poco clara tu duda. La componente MaskEdit sirve precisamente para que un valor se ajuste a un formato dado. Si el valor que introduce el usuario no tiene el formato correcto entonces se origina una excepción y es precisamente el comportamiento normal: evitar la introducción de valores incorrectos. Si por alguna razón el control del MaskEdit no te sirve, por ejemplo porque el formato sea más complejo que una simple máscara, entonces olvídate de la componente, usa un TEdit normal y controla el formato en su evento OnExit.

Ahora bien, si lo que quieres es poder presentar un mensaje en español en lugar del mensaje en inglés te comento que no puedes usar try-except en el evento OnExit ya que la validación de la máscara se hace antes de que se genere el evento.

En tal caso te recomiendo leer este mensaje en donde explico cómo hacerlo.

// Saludos

pkbza 15-06-2004 18:38:45

Lo explico de otra forma, cuando ingreso un valor a la mascara y luego borro algun caracter, al quitarle el foco (evento onexit) se produce el error invalid input value.

roman 15-06-2004 18:42:04

Cita:

Empezado por pkbza
Lo explico de otra forma, cuando ingreso un valor a la mascara y luego borro algun caracter, al quitarle el foco (evento onexit) se produce el error invalid input value.

Pues ya te lo dije. No estás haciendo otra cosa que explicarnos cuál es el comportamiento de un MaskEdit, cosa que ya sabíamos. Si éste no es el comportamiento que buscas tendrás entonces que utilizar otra componente.

// Saludos

pkbza 15-06-2004 18:49:08

Gracias, la nueva expliacion era por lo poco claro de la duda solamente.

Chao y saludos.

pkbza 15-06-2004 19:16:11

Ahora me quedo claro el comportamiento del MaskEdit (estaba un poco confuso), el link donde sale como enviar el mensaje en español me funciono correctamente, muchas gracias.
Chao.

lucianojdg 05-08-2004 17:18:48

Error del MaskEdit
 
Tengo el mismo problema que PKBZA, esto ocurre solo con Delphi 7 (al menos lo probe en Delphi 6 y funciona correctamente)

Paso a explicar:

Cuando escribo en el MaskEdit supongamos un legajo 123-4567
(mascara: ___-____) y luego selecciono el texto completo y presiono la tecla (Del/Supr), borra el texto escrito y ademas la mascara del componente, cosa que no ocurre si utilizo la tecla Backspace (con la cual solo elimina el texto escrito). Una ves presionada la tecla Del/Supr la mascara queda de la siguiente manera _ (solo un guion), y cuando se sale del componente muestra un mensaje que en estos momentos no recuero... el tema es que la mascara NUNCA deberia perderse.

Alguien sabe como se puede solucionar esto teniendo en cuenta que en la version anterior no ocurria?

Saludos

Luciano

roman 05-08-2004 17:34:35

Cita:

Empezado por lucianojdg
Cuando escribo en el MaskEdit supongamos un legajo 123-4567
(mascara: ___-____) y luego selecciono el texto completo y presiono la tecla (Del/Supr), borra el texto escrito y ademas la mascara del componente

Acabo de probar en Delphi 7 y no se borra la máscara. ¿Tienes intalada la actualización de D7?

// Saludos

lucianojdg 05-08-2004 17:38:08

No, no tengo instaladas las actualizaciones. Donde las puedo conseguir...?

Confirmamos entonces que es un error del Componente?


Luciano

lucianojdg 31-01-2005 14:46:45

No funiona
 
Instale la ultima actuaizacion del D7 y el error continua...


Alguna otra idea de como soluciona esto?


Gracias


Luciano


La franja horaria es GMT +2. Ahora son las 08:13:40.

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