Cuidado con el cursor y el KeyDown

Cuidado con el cursor y el KeyDown

Postby manuramos » Mon Mar 06, 2006 8:21 pm

Estimados compañeros, para los que gustan de construir sus propias clases, me gustaría comentaros un problemilla que me ha traido de cabeza durante algunas semanas y que a lo mejor os ha ocurrido a vosotros, pues por si os sirve de ayuda, he conseguido solventarlo. Os cuento:
Hace algún tiempo que construí mi propio Browse para Arrays derivado de TControl. Todo muy bien, muy bonito. Todo perfecto. Pero mira por donde que en el último programa me ha ocurrido un hecho curioso. Tengo el browse en una ficha de clientes, como si fuera una tabla que se refresca para cada ficha. Normalmente, cuando salgo de la ventana no ocurre nada anómalo, se cierra la base de datos al cerrarse el diálogo y todo normal; pero si cuando salgo mi Browse tenía el foco y además había pulsado la tecla CURSOR ABAJO (como última tecla pùlsada), al salir del dialogo, éste se refresca de improviso, y como había cerrado la base de datos con el dialogo, pues: ERROR!. Pero sólo con esa combinación, si la última acción es cualquier otra tecla o el ratón, o con el foco en otro control, todo bien.
Hasta que, investigando conseguir darme cuenta de que la clase TCONTROL procesa la tecla VK_DOWN para buscar el siguiente control del diálogo cuando el control pierde el foco, y al perder mi Browse el foco cuando se cierra la ventana, pues nada busca el siguiente control (de un dialogo cerrándose) y: el ERROR de las narices. Lo he solventado poniendo ::oWnd:nLastKey := 0 el mi método KeyDown(...).
Y todo este tostón es por si alguién ha estado, como yo, a punto de comerse el ordenador por un echo que en principio parecía inexplicable. Cuidado con los KeyDown's de vuestras propias clases cuando se derivan de TCONTROL.
Un saludo y que os sea leve...
Nos Gusta Programar
manuramos
 
Posts: 219
Joined: Mon Dec 26, 2005 7:25 pm
Location: Jerez de la Frontera (Spain)

Postby fgondi » Tue Mar 07, 2006 8:42 am

Hola

Muchas gracias por tu ayuda. Ese mismo problema lo tengo yo y llevaba un tiempo intentando dar con la solución.

Lo pruebo y ya te cuento.
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España


Return to Bugs report & fixes / Informe de errores y arreglos

Who is online

Users browsing this forum: No registered users and 17 guests