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 18-01-2006
cybergerman cybergerman is offline
Miembro
 
Registrado: ago 2004
Posts: 36
Poder: 0
cybergerman Va por buen camino
Unhappy Problemas con foco de componente/s

Como hago para que no se ejecute el evento de un determinado componente
Por Ej: Un Boton.

Resulta que el mismo se llama por ejemplo Cargar, y se ejecuta al presionar
"alt+c" , pero lo que no quiero es que se ejecute al presionar "c"

La propiedad keypreview en el form esta en True.

hay alguna solución?
Responder Con Cita
  #2  
Antiguo 18-01-2006
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 evento no se ejecuta "sin más" al pulsar una tecla o una combinación de estas. Si tienes un botón en un formulario y este tiene una combinación de teclas de acceso rápido, como pudiera ser "ALT + C", entonces el evento "OnClick" del botón será ejecutado, pero será ejecutado en ese caso, no en el caso de que se pulse solamente la tecla "C".

En definitiva no entiendo muy bien tu pregunta. Si lo que tratas de utilizar es el evento "OnKeyDown" de un formulario, por ejemplo, entonces en ese evento cuentas con los parámetros adecuados para discriminar (por medio de alguna expresión condicional) qué ejecutar y qué no, dependiendo de la tecla o combinación de teclas pulsadas.

Tal vez no estoy entendiendo el problema que tienes. Me disculpo si es así.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 18-01-2006
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,

Vale. He comprobado que, efectivamente, cuando un botón cuenta en su propiedad "Caption" con un símbolo "&" (ampersand) antes de cualquier letra, la misma se convierte en un acceso directo "al botón", es decir, sirve para ejecutar el código del evento "OnClick" de dicho botón. Pensaba que era necesario utilizar la tecla "ALT" junto a la tecla "subrayada", pero, se ve que no es así, sino que basta con pulsar la tecla "subrayada".

Pues le he dado unas cuantas vueltas, pero, no sé qué te diga... no se me ocurre nada que pueda servir... lo lamento.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 18-01-2006
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 yo haría es no programar nada en el OnClick de los botones ni subrayar ningún caracter en en su texto.

En su lugar utilizaría acciones. A una componente TActionList le agregas las acciones que requiera tu aplicación y en su evento OnExecute programas lo que antes estaba en los botones. A un botón le asignas la acción requerida mediante su propiedad Action. El efecto final es el mismo pero ahora cuentas con la propiedad Shortcut de la acción que te permite asignar la combinación de teclas deseada para ejecutar la acción, por ejemplo, Alt+C.

Además, el uso de ActionList y Action te produce un código mucho más prolijo ya que separas la acción en sí de la componente visual que uses para ejecutarla. Así, por ejemplo, puedes asignar una misma acción aun botón y un item de menú sin tener que programar lo mismo en cada evento OnClick.

// Saludos
Responder Con Cita
  #5  
Antiguo 18-01-2006
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,

Iba a responder algo así Román. Pensé que la acción se ejecutaría con el acceso directo (teclas) adecuado y no con la "tecla rápida" del botón... pero la acción se ejecuta lo mismo que el evento "OnClick": con la tecla rápida del botón. Ahora, si se quita esa tecla rápida... a mí tampoco me disgustan las acciones, por las posibilidades que tienen.
__________________
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
Mensaje - Evento... antes de perder el foco, es posible??? ariefez Varios 11 13-07-2007 23:28:21
Liberar el foco de un objeto Velia Varios 4 18-11-2005 01:08:08
TEdit selecciona todo al recibir el foco pero se pierde con el click Sirkius Varios 4 29-08-2005 11:02:33
Poner color background del form cuando pierde el foco Cabanyaler Gráficos 4 25-11-2004 08:32:03
OnValidate y Foco javiermorales OOP 9 21-05-2003 08:10:16


La franja horaria es GMT +2. Ahora son las 01:10: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