Decidir O Cambiar El Orden Del Foco En Los Componentes Del Formulario


Objetivo: Decidir O Cambiar El Orden Del Foco En Los Componentes Del Formulario
Hola,

Cuando inicia mi Formulario el foco se inicia donde quiere y no donde a mi me gustaría que este. En visual Basic recuerdo que tenia un ID de orden para decidir donde comenzar e incluso ordenarlos todos.

En la interfaz de gambas existe algo como Jerarquía pero no se si es eso.

Pero no debe ser por lo siguiente, les pongo un ejemplo:

Tengo un TabPanel1 y en la capa superior a el esta un componente personal (Llamo X). Ocurre esto:

1. Si pongo el TabPanel1 en la jerarquía superior a X, X no recibe el evento MouseUp
2. Si pongo el TabPanel1 en la jerarquía inferior a X, X ya recibe el evento MouseUp pero siempre recibe el Foco el primero.

Yo quiero que el Foco esté en TabPanel1 pero poder acceder al evento MouseUp de X

La razón por la que no recibe el evento en el caso 1 es que el TabPanel1 en su parte transparente tapa al componente X

Esto lo resolvería un orden de Foco pero no se como resolverlo. En realidad lo resolvería haciendo trampa, lo explico, cuando haga MouseUp en TabPanel1 pues enviar el foco al componente X pero eso son chapuzas puntuales.

¿Hay solución digna?

Gracias.

Perfil MP  
Objetivo: Re: Decidir O Cambiar El Orden Del Foco En Los Componentes Del Formulario
Se hace vía jerarquía. Se complementa con la propiedad NoTabFocus para que tome o no el foco vía tecla Tab.

Por otra parte el pretender levantar el evento de pulsación de ratón de algo no visible, no tiene sentido. El usuario no sabe dónde está haciendo click.

Ya sabes que hay eventos, como los de teclado y (creo, nunca lo he explorado) ratón que se propagan por la jerarquía de objetos. Deberías averiguar qué objeto es el que observa ese click (apuesto por el contenedor) y tratar ahí el código que deseas.

Saludos

Perfil MP  
Objetivo: Re: Decidir O Cambiar El Orden Del Foco En Los Componentes Del Formulario
gambafeliz escribió: [Ver mensaje]


La razón por la que no recibe el evento en el caso 1 es que el TabPanel1 en su parte transparente tapa al componente X



Shordi:

Fijate en la frase que, se que no te has dado cuenta y no importa. El TabPanel1 tapa en su parte transparente al componente X pero el componente X es visible para el usuario y por lo tanto el usuario piensa que el evento MouseUp esta presente. Por lo tanto clicka y clicka pero na de na.

Y si lo pongo (componente x) en la jerarquía primero pues todo bien pero cuando carga el programa se sitúa en el componente x y no en TabPanel1 como yo quiero. Es problema de jerarquía y no de otra cosa.

La solución es quizás en el formulario cambiar el foco a TabPanel1 de alguna forma. En fin, voy a ponerme en ello.

Nota: Por si no quedo claro, este problema no es en la creación de un componente sino en un programa que lleva componentes (un programa normal)

Perfil MP  
Objetivo: Re: Decidir O Cambiar El Orden Del Foco En Los Componentes Del Formulario
shordi escribió: [Ver mensaje]
Se hace vía jerarquía. Se complementa con la propiedad NoTabFocus para que tome o no el foco vía tecla Tab.

Por otra parte el pretender levantar el evento de pulsación de ratón de algo no visible, no tiene sentido. El usuario no sabe dónde está haciendo click.

Ya sabes que hay eventos, como los de teclado y (creo, nunca lo he explorado) ratón que se propagan por la jerarquía de objetos. Deberías averiguar qué objeto es el que observa ese click (apuesto por el contenedor) y tratar ahí el código que deseas.

Saludos


Oye tienes razón la solución esta por código en su contenedor (Form) cambiando el setFocus en Open() en la llamada última. Yo pretendía resolverlo desde la interfaz gráfica gambas mediante el IDE por propiedades, jerarquía o lo que sea, pero no era la solución.

De forma directa a resuelto como es normal en ti.

Gracias

Nota: Si pegas en mi puerta te juro que no te abro que eres capaz de pasarme una minuta que te llegue a los zapatos.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 2.5146s (PHP: -77% SQL: 177%)
Consultas SQL: 44 - Debug off - GZIP Activado