Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-03-2007
Miguel45 Miguel45 is offline
Miembro
 
Registrado: oct 2005
Ubicación: Gandía (Valencia) -España-
Posts: 41
Poder: 0
Miguel45 Va por buen camino
Problemas con la tecla F1

Hola compañeros,
Antes de decidirme a preguntar, he indagado por el foro y no he encontrado solución alguna al problema que voy a plantear. Es un tanto curioso y la primera vez que lo veo.
Primero deciros que trabajo con delphi 5 e Interbase.
En algunos formularios, cuando quiero usar la tecla F1, no se que ocurre pero no funciona.
Pongo puntos de ruptura en los eventos OnKeyDown y OnKeyPress para poder ver lo que pasa, pero el programa ni siquiera se para, es como si no estuviera pulsando dicha tecla. Sin embargo, cualquier otra tecla sí funciona, sí que se detiene el programa en el punto de ruptura establecido.
Por Ejemplo, dentro del evento OnKeyDown de un TEdit pongo el codigo:
Código Delphi [-]case key of 112: begin // aquí pongo el código que quiero al pulsar F1 end; 113: begin // aquí pongo el código que quiero al pulsar F2 end; end;


Si pulso la tecla F1 es como si no pulsase nada, en cambio si pulso F2 sí que funciona bien.

Agradecería cualquier solución o cementario al respecto.
Un saludo.

Miguel.
Responder Con Cita
  #2  
Antiguo 23-03-2007
Avatar de Zeta
Zeta Zeta is offline
Miembro
 
Registrado: feb 2005
Posts: 215
Poder: 20
Zeta Va por buen camino
Parece que fuera tu tecla F1 porque el código funciona bien.
Código Delphi [-]case key of 112: begin showmessage('presioné F1'); end; 113: begin showmessage('presioné F2'); end; end;


Probá ir al escritorio de Windows, y presionar F1, si se te abre el "Centro de ayuda y Soporte técnico" en WXP o la ayuda en W98 la tecla funciona.

Cuando dices:

Cita:
En algunos formularios, cuando quiero usar la tecla F1, no se que ocurre pero no funciona.
Si es sobre el formulario tienes que poner el evento "Key Preview" del formulario en True.

Saludos
__________________
And I'd like an hour on the holodeck with Seven of Nine.
Responder Con Cita
  #3  
Antiguo 23-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Organización :

- KeyPreview del Formulario a True
- Usar el OnkeyDown del Form, no confundir con el Onkeydown del TEdit.
- Usar las constantes de delphi para las teclas: vk_F1, vk_return, vk_F2, etc (busca por virtual keycodes en la ayuda)

Como sustitución a esos métodos, puedes usar el ActionList y activar su ShortCut, se centraliza las pulsaciones de teclas.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 23-03-2007
Miguel45 Miguel45 is offline
Miembro
 
Registrado: oct 2005
Ubicación: Gandía (Valencia) -España-
Posts: 41
Poder: 0
Miguel45 Va por buen camino
Gracias por responder.
Ante todo decir que el teclado funciona perfectamente.
Dentro del mismo proyecto, hay algunos formularios que cuando quiero programar un evento para la tecla de función F1 (por ejemplo, siempre uso F1 para llamar a pantallas de búsquedas de clientes, proveedores, artículos,...), delphi no responde a la pulsación de esta tecla, sin embargo sí que responde a las demás.
Lo he probado en varios formularios, con la opción OnKeyPress del form a True, modificacando el estilo del form, en la propiedad OnKeyPress y OnKeyDown de controles TEdid, TDBGrid,...
Si embargo, en la mayoría de forms funciona todo a la perfección.
En fin, voy a seguir indagando.
Un saludo.
Responder Con Cita
  #5  
Antiguo 23-03-2007
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,

La tecla F1 es la que en Windows suele utilizarse para llamar a la "ayuda" de un programa, sea esta contextual o no. Pero, bueno, nada impide utilizarla para otro menester, salvo que puedas confundir a un usuario que busque ayuda y se encuentre con otra cosa.

Pero lo que quería decir es que es raro lo que dices y lo único que se me ocurre a bote pronto es que algo esté capturando la tecla F1. Algo en tu aplicación, como pueda ser algún componente... pero sin duda es extraño que no funcione algo como lo que dices.

No sé si tenga que ver, pero, por ejemplo, hay veces que quieres que se cierre un formulario cuando el usuario pulsa la tecla "Escape". Pues bien, si en el formulario hay un "TMemo", por ejemplo, y el mismo tiene el foco del usuario... "la tecla Escape" se queda en el "TMemo" y no se cierra el formulario... como no sea que captures también dicha tecla en el propio "TMemo".

Tal vez está ocurriéndote algo parecido y más teniendo en cuenta que dices que encuentras el problema en algunos formularios pero no en otros. Tal vez los formularios problemáticos cuentan con algún componente que está capturando la tecla F1... echa un vistazo a ver qué componentes hay en el formulario "problemático" que no existen en los formularios que "responden" a la tecla F1 tal como esperas.
__________________
David Esperalta
www.decsoftutils.com
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
saber que tecla se presiona despues de X tecla amadis OOP 9 04-01-2008 13:16:35
Capturar Tecla Sick boy OOP 0 25-09-2004 11:27:59
Tecla Suprimir javiermorales OOP 9 20-09-2004 21:45:33
Tecla PetSis y tecla Inter Tomás Windows 0 24-04-2004 14:20:19
TECLA F1 o F10 andrestsas Varios 2 03-08-2003 17:44:11


La franja horaria es GMT +2. Ahora son las 11:56:33.


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