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 25-01-2008
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 136
Poder: 18
marilinspi Va por buen camino
Como asignar funciones a las teclas F1, F2, ...., F12

hola a todos, mi pregunta es la siguiente: estoy parada sobre un formulario y al pulsar la tecla F1 o F2 o F3 o cualquiera de las funciones quiero que me habra otro formulario o me habra un menu contextual o me relice alguna accion, el tema es como hago? he escuchado que hay un componente pero no se cual es, ni como usarlo.... espero sus respuestas, desde ya muchas gracias.
Responder Con Cita
  #2  
Antiguo 25-01-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Un buen componente es el "TActionList", que te permite incluir "acciones" en tu código, que a su vez pueden ser ejecutadas mediante una tecla de acceso directo, como puedan ser las que mencionas. Si no recuerdo mal está en la pestaña "Additional" y es bastante sencillo de utilizar. Además se integra muy bien con otros componentes: fíjate que a los botones (y es sólo un ejemplo) se les puede asignar una "acción", de modo que sea ejecutada cuando se hace clic en ellos.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 25-01-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Puedes usar el evento OnKeyDown de la forma y "preguntar" que tecla fué presionada.

Código Delphi [-]
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case key of
     VK_F1 : begin
           //Hacer algo F1
          ShowMessage('Se presionó F1'); //Por ejemplo
     end;
     VK_F2 : begin
           //Hacer algo F2
     end;
     VK_F3 : begin
           //Hacer algo F3
     end;
  end;
end;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #4  
Antiguo 25-01-2008
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 19
jcarteagaf Va por buen camino
Teclas de Funcion

Tambien es importante colocar la propiedad keypreview en True de la forma para que funcione el codigo del anterior post.

Saludos
Responder Con Cita
  #5  
Antiguo 25-01-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por jcarteagaf Ver Mensaje
Tambien es importante colocar la propiedad keypreview en True de la forma para que funcione el codigo del anterior post.

Saludos
Tienes toda la razón, se me olvido comentar ese detalle, ya que si el foco está en algún otro objeto, no funcionará.

Gracias.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 25-01-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Si tu programa tiene un menú (TMainMenu) con que asignes a cada menú la propiedad ShorrCut a la combinación correspondiente, ya lo tienes.

Por cierto, en las versiones antiguas de Delphi (como la mía ) no existe ese tal TActionList. (qué suerte tenéis, cabrones )


Salu2.
Responder Con Cita
  #7  
Antiguo 25-01-2008
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 136
Poder: 18
marilinspi Va por buen camino
hola egostar primero gracias....me funciono la solucion que me diste, pero quisiera saber si hay alguna lista de todas las VK_ es decir si eso mismo lo puedo hacer con cualquier tecla... por ejemplo que el apretar la tecla N haga alguna accion como hizo cuando aprete F1. Gracias desde ya.
Responder Con Cita
  #8  
Antiguo 25-01-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Cita:
Empezado por marilinspi Ver Mensaje
hola egostar primero gracias....me funciono la solucion que me diste, pero quisiera saber si hay alguna lista de todas las VK_ es decir si eso mismo lo puedo hacer con cualquier tecla... por ejemplo que el apretar la tecla N haga alguna accion como hizo cuando aprete F1. Gracias desde ya.
En la ayuda de Delphi hay una lista. Lo que no recuerdo es en qué parte

De todas formas, VK_ son constantes numéricas, puedes sacar el número de cualquier tecla...

Abre un nuevo proyecto, en en FormKeyDown colocas esto:

Código Delphi [-]
Caption:=IntToStr(Key);


Ejecutas y vas probando las teclas


Salu2.
Responder Con Cita
  #9  
Antiguo 25-01-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Vale, abre el archivo "Win32.hlp", y busca en él "VK_ list", y te aparecerá un artículo llamado "Virtual key codes". Ahí tienes la lista completa.


Salu2.
Responder Con Cita
  #10  
Antiguo 25-01-2008
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 19
jcarteagaf Va por buen camino
Teclas de Funcion

La lista tambien esta en la ayuda de Delphi, en Virtual Key Codes.

La comparacion la podrias hacer

Código Delphi [-]
if Key = ord('N') then

 .....

Saludos.
Responder Con Cita
  #11  
Antiguo 25-01-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Cita:
Empezado por jcarteagaf Ver Mensaje
La lista tambien esta en la ayuda de Delphi, en Virtual Key Codes.

La comparacion la podrias hacerif Key = ord('N') then

Saludos.
Bueno, en mi Delphi no está o no sé encontrarlo

En cuanto al código que has puesto, si está pensado para el evento OnKeyDown / OnKeyUp, hay que decir que la letra tiene que estar en mayúsculas, ya que su VK coincide con su código ASCII/ANSI (no sé cuál de los dos) en MAYÚSCULAS, si se pone en minúsculas no va. Ya no sé que pasará con la "Ñ" y otros "carácteres extraños"


Salu2.
Responder Con Cita
  #12  
Antiguo 25-01-2008
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 19
jcarteagaf Va por buen camino
Teclas de Funcion

Uso la version 7 del delphi, en ese help encontre la lista.

Y el codigo que puse es exclusivo para los eventos Onkeydown y onkeyup

Código Delphi [-]
if key = ord('N') then

 ....

es valido para mayusculas o minusculas, ya que se obtiene el valor de las Api de Windows de la tecla presionada.

Ahora si se necesita saber el estado de las teclas Shift, Alt, Control se usa el parametro Shift del evento.

Para la Ñ el valor de key es 192.

Saludos
Responder Con Cita
  #13  
Antiguo 25-01-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Cita:
Empezado por jcarteagaf Ver Mensaje
es valido para mayusculas o minusculas, ya que se obtiene el valor de las Api de Windows de la tecla presionada.s
Puedes comprobar que si pulsas "A" su VK es 65, mientras que si pulsas "a" su VK sigue siendo el mismo, 65. Pero Ord('A') devuelve 65 mientras que Ord('a') devuelve 97.

De todas formas, lo que necesitaba nuestro amigo (o amiga ) era la lista, y eso ya sabe encontrarlo


Salu2.
Responder Con Cita
  #14  
Antiguo 25-01-2008
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 136
Poder: 18
marilinspi Va por buen camino
Gracias

hola gracias a todos la verdad me dieron una gran mano. Lo solucione con los VK_ asignandole a cada tecla una funcion.
Responder Con Cita
  #15  
Antiguo 25-01-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Bueno amigo ixMike, aquí la lista de las VK's

http://api.farmanager.com/en/winapi/...lkeycodes.html

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #16  
Antiguo 26-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Si no quieres conectarte a internet, en la ayuda de delphi buscando por "virtual keycodes" también aparece el listado. No recuerdo que venga el valor hex.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
cambiar teclas de cursor up down por o tras teclas en un TDBGrid lococaceres Conexión con bases de datos 1 13-07-2007 07:01:40
Como simular algunas teclas sergio_015 Varios 2 03-05-2007 19:04:57
teclas de funciones algo raro.... ronimaxh Varios 0 29-05-2006 23:19:13
utilizar teclas de funciones JODELSA API de Windows 2 07-08-2003 23:54:37
Como utilizo las teclas F1, F2, Fn? Urgente danytorres Varios 6 22-07-2003 10:05:13


La franja horaria es GMT +2. Ahora son las 07:13:28.


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