Ver Mensaje Individual
  #12  
Antiguo 09-10-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Entiendo tu interés por la compatibilidad con el uso del teclado pero siento que no es éste (WM_KEYDOWN) el camino a seguir. Como ya te había mencionado antes, hacer un manejador para todas las teclas no es algo muy "normal". Vamos a suponer que lo que deseas es que con determinadas teclas el usuario pueda realizar ciertas operaciones: guardar o abrir archivos, abrir catálogos, insertar algún registro, etc. Todas éstas son acciones de tu programa y como tales Delphi te proporciona un mecanismo ideal para ello: la componente TActionList y sus subcomponentes TAction (que ya te había mencioando). Por cada acción de tu programa añades una TAction al ActionList, y usas su propiedad Shortcut para establecer la tecla o combinación de teclas que desees para iniciar la acción. El código en sí de la acción lo programas en el evento OnExecute del TAction. Esto, además de ayudarte en tu problema, fomenta la centralización del código: suponte que determinada acción quieres ejecutarla ya sea con una tecla, con un botón de la barra de herramientas o con un item de un menú. Basta que al item y al botón les asignes la TAction correspondiente para que al ahcer click en uno u otro se ejecute el OnExecute. Las TAction te permiten además centralizar el texto que aparece así como te permite, usando el evento OnUpdate (del TAction o del TActionList), habilitar o inhabilitar en un lugar central los controles que generen la acción (incluido el shortcut) según estén disponibles o no en determinado momento.

En fin, te recomiendo que consideres esta opción ya que me parece no solo que puede resover tu problema sino que además te permitirá escribir un código más prolijo.

Si aún así requieres de WM_KEYDOWN puedes buscar en la ayuda del SDK de Windows (incluida con Delphi) para ver cómo es que se obtiene la información precisa de la tecla oprimida.

// Saludos
Responder Con Cita