FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
focus de los componentes de un ventana
Buen día,
tengo una duda respecto al focus, como se hace para saber cual es el orden y cual es el componente que tiene el foco y cual es el que le sigue.... por ejemplo si tengo cierta cantidad de Edit's en una ventana pero dependiendo de lo digitado en el primero los siguientes o solo algunos se desabilitan... como se le dice a la ventana que vaya al siguiente componente que puede tener el foco, sin utilizar la tabulación... ademas como hago para cambiar el comportamiento de cambio de foco para que no sea con tabulacion si no con otra tecla?.. por ejemplo enter... y desabilitar la tabulacion como cambio de foco entre los componentes.... Muchas gracias. yo sé que los componentes y su orden de tomar el foco se guian por una propiedad llamada TabOrder que es un numero, entonces la ventana activa debe mantener ese numero en algún lado... como hago para decirle a la aplicacion tome el componente con el taborder 6 por ejemplo... gracias y espero haberme explicado... |
#2
|
||||
|
||||
Saludos,
Cita:
Cita:
Y en el evento OnKeyUp/OnKeyDown, puede capturar la tecla "Tab" (vk_tab) pulsada y hacer lo propio. Aunque, si no me equivoco, podría optar mejor por capturar el mensaje de Windows cm_dialogkey, para la forma completa. -
__________________
"constructive mind, destructive thoughts" |
#3
|
|||
|
|||
gracias, .... me sirvió de guía pero me encantaría saber un poco mas exacto como puedo anular el tab como cambio de foco entre los componentes.. gracias.
|
#4
|
||||
|
||||
Cita:
En este ejemplo, anulo la tecla Tab como generadora del cambio de foco y le doy esta función a la tecla F2. Unit1.h: Código:
... private: TMessageEvent OldMessageEvent; void __fastcall ApplicationMessage(tagMSG &msg, bool &handled); ... Código:
... void __fastcall TForm1::ApplicationMessage(tagMSG &msg, bool &handled) { if (msg.message == WM_KEYDOWN) switch (msg.wParam) { case VK_TAB : handled = true; break; // TAB case VK_F2: msg.wParam = VK_TAB; break; // F2 = TAB } } void __fastcall TForm1::FormCreate(TObject *Sender) { OldMessageEvent = Application->OnMessage; Application->OnMessage = ApplicationMessage; } //... void __fastcall TForm1::FormDestroy(TObject *Sender) { Application->OnMessage = OldMessageEvent; } ... Código:
void __fastcall TForm1::ApplicationMessage(tagMSG &msg, bool &handled) { if (msg.message == WM_KEYDOWN && msg.wParam == VK_TAB) handled = true; }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Muchas gracias ecfisa... siempre tan explicito... ... gracias... completamente entendido, lo probaré... gracias
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
No perder el focus de una ventana hijo | marareta | OOP | 2 | 19-07-2010 08:56:29 |
Propiedades de los componentes a traves de una ventana | Cecil | OOP | 8 | 03-10-2007 02:02:49 |
Focus | eldonfsr | C++ Builder | 2 | 19-09-2007 07:35:39 |
Focus | Huer | Varios | 6 | 05-05-2007 19:16:20 |
Sobre maximizar los componentes de una ventana mdi | quake2420 | OOP | 2 | 06-08-2005 05:15:10 |
|