Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-11-2004
senpiterno senpiterno is offline
Miembro
 
Registrado: abr 2004
Posts: 112
Poder: 21
senpiterno Va por buen camino
Simular sortar una tecla

Hola amigos

Me gustaria saber como puedo via codigo simular que se suelta una tecla. He probado usando la funcion keybd_event, pero no resulta. Tengo algunas funciones asociadas al evento KeyUp de un control. Por cual al simular que se preciona una tecla sobre dicho control, deberia ejecuar las funciones contenidas en el evento KeyUp, pero como dije enteriormente no pasa nada, quisas porque la funcion keybd_event solo simula el precionado de una tecla y no cuando esta se suelta...??

Gracias por cualquier ayuda

Saludos...
Responder Con Cita
  #2  
Antiguo 12-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Y por qué no llamas directamente al evento, o mejor aun, a las funciones asociadas?

// Saludos
Responder Con Cita
  #3  
Antiguo 12-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Ahora que, si insistes, quizá te sirva así:

keybd_event(VK_F6, 0, KEYEVENTF_KEYUP, 0);

// Saludos
Responder Con Cita
  #4  
Antiguo 12-11-2004
senpiterno senpiterno is offline
Miembro
 
Registrado: abr 2004
Posts: 112
Poder: 21
senpiterno Va por buen camino
Gracias Roman por tu respuesta
Cita:
Empezado por roman
¿Y por qué no llamas directamente al evento, o mejor aun, a las funciones asociadas?
No puedo hacer esto ya el control en donde intento simular el soltar una tecla es un grid, el el cual necesito simular que se precionan las teclas de direccion a traves de botones. Y necesito que cada vez que se simula el soltar una tecla se cambie el foco de la celda del grid seleccionada, y esto solo lo consigo simulando que se precionan las teclas de direccion. Cuando esto ocurre se lanza el evento KeyUp del mismo control, el cual tiene las funciones asociadas al nuevo foco originado por el cambio de la celda activa....

el efecto que deseo lo consigo asi:
Código Delphi [-]
keybd_event(VK_DOWN,0,0,0);//Precionamos la tecla (cambia el foco)
keybd_event(VK_DOWN,0,KEYEVENTF_KEYUP,0);//Ahora la soltamos (dispara el evento KeyUp)

Saludos...
Responder Con Cita
  #5  
Antiguo 12-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto


¿Lo que quieres es mover la selección? ¿Qué no sería más ortodoxo usar DBGrid.SelectedIndex para moverte horizontalmente y DataSet.Next y DataSet.Prior para moverte verticamente?

// Saludos
Responder Con Cita
  #6  
Antiguo 12-11-2004
senpiterno senpiterno is offline
Miembro
 
Registrado: abr 2004
Posts: 112
Poder: 21
senpiterno Va por buen camino
Cita:
Empezado por roman
¿Lo que quieres es mover la selección? ¿Qué no sería más ortodoxo usar DBGrid.SelectedIndex para moverte horizontalmente y DataSet.Next y DataSet.Prior para moverte verticamente?
No, porque las propiedades SelectedIndex, Next y Prior, cambian en foco, pero no disparan el evento KeyUp del grid, que es en donde estan el las funciones que deseo ejecutar, ademas tambien existe la posibilidad de que el usuario utilice las teclas de desplazamiento para moverse dentro del grid y si el codigo a ejecutar en dichas acciones ya esta en el evento KeyUp, para que volverlo a repetir en otro lugar, resulta mejor provocar el disparo del evento KeyUp en forma indirecta.

Saludos....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:30:49.


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
Copyright 1996-2007 Club Delphi