FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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? |
#2
|
||||
|
||||
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í. |
#3
|
||||
|
||||
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. |
#4
|
||||
|
||||
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 |
#5
|
||||
|
||||
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. |
|
|
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 |
|