Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   MaskEdit (https://www.clubdelphi.com/foros/showthread.php?t=14343)

scooterjgm 17-09-2004 11:25:36

MaskEdit
 
hola a tod@s!!

Tengo un componente de tipo TcxMaskEdit con esta máscara: (\d){1,5}
para que escriban número enteros hasta 5 cifras. Si intento escribir letras no me deja, pero si copio un texto, de word por ejemplo, me sale el siguiente error:

Access violiation at adress 0050CC 08 in module 'Aplicación.exe' read of adress 00000000.

¿¿Alguien sabe como hacer para evitar el pegado de texto en el componente o controlar que lo que se pega sea válido??

Un Saludo.

weke 17-09-2004 12:13:27

Poniendo este código en el evento 'OnKeyPress' del MaskEdit:
Código:

if not (key in ['0'..'9',chr(8)]) then abort;
impides que se escriban letras y que se pueda hacer 'CTRL+C' o 'CTRL+Insert'.

Lo único que no se como impedir es que te salga el menu del botón derecho del ratón.

Espero que te ayude un poquillo, aunque no te soluciono completamente el problema.

scooterjgm 17-09-2004 12:19:50

Muchas gracias!!

Ya está resuelto.... para evitar el menu contextual del botón derecho del ratón le he puesto en el evento

onContextPopup
abort;

Y solucionado!! Muchas Gracias weke :)

quetzal 17-09-2004 17:15:37

por si no contabas con las teclas de atajos
 
GG, tal vez no pensantes en el Ctrl + P, porque probe lo del menu contextual y fue excelente, pero tambien abria que cancelar las teclas de atajo, prueba este codigo

OnKeyPress
begin
if (HiWord(GetKeyState(VK_CONTROL))<> 0 ) and (key = #22) Then
key:=#0;
end;

scooterjgm 17-09-2004 17:44:35

con el codigo de weke:

if not (key in ['0'..'9',chr(8)]) then abort;

se deshabilita cualkier tecla q no sea numérica, "control" incluido. que me corrija weke si me ekivoco...:)

weke 20-09-2004 07:13:12

No te equivocas scooterjgm, de hecho fue lo primero que probé porque no estaba seguro si el código me dejaría hacer CTRL+C, y no te lo permite.


La franja horaria es GMT +2. Ahora son las 21:27:56.

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