Es un gusto saludarte! :) :)
Mmm... como detener la pulsación de alguna tecla asignada al nKeyCode.. mm pues como que esta difícil! Je je. Lo que si se puede hacer es evaluar cuando esta disponible la acción al presionar la tecla, a través de alguna otra condición.
Para ser mas claro.. veamos el siguiente ejemplo:
Tenemos un Text1 en el form en donde asignamos un valor (en tu caso, el numero aleatorio). Si se presiona F4 y el texto esta vacío (THISFORM. Text1.Value = 0), el procedimiento para generar el numero aleatorio se dispara... porque? Porque se
Presiona la tecla y porque aun no se ha generado ningún valor anterior... sabemos que no hay ninguna valor anterior porque el text tiene de value = 0.
¿Qué pasa si ya se generó un valor aleatorio que se asignó al text? Al presionar F4, la condición no se cumple y por tanto... no se genera el proceso, es decir, podes presionar 100000 veces F4 pero es como si se "desactivara" la tecla.
Para que veas mas sencillo... hace esto como ejemplo:
Inserta un text1 en tu form. En el evento KeyPress.. coloca un código como este:
**--
IF nKeyCode = -3 AND VAL(THIS.Value) = 0
Messagebox("hola")
Endif
**--
Guarda y ejecutá. En el form, presiona F4 cuando no haya ningún valor (esté vacío) en el text1 y aparecerá el mensaje Hola. Introducí algún numero en el text y luego presiona F4 y veras que no hay efecto.
Bien... espero te sea útil. Cualquier cosa, avisame! :) :) :) A tus ordenes!
Ravenn :D :D :D