Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Focus en ventanas MDIChild

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Focus en ventanas MDIChild Responder citando

Hola a todos

Tengo una aplicación MDI que tiene en la ventana principal un TStringGrid. También tengo una ventana hija con un TStringGrid. Los elementos de la rejilla de la ventana principal pueden arrastrarse (drag & drop) a la rejilla de la ventana hija. Hasta ahí todo bien.

El problema viene de que, tras arrastrar un objeto, quiero que la ventana hija responda a los eventos de teclado. Simplemente con hacer clic sobre la ventana hija no retiene el foco y al pulsar una tecla la captura la pantalla principal. Sólo cuando hago doble clic sobre la rejilla de la ventana hija obtiene ésta el foco.

Me gustaría que sólo con pulsar con el ratón sobre la ventana hija ya retuviera el foco porque lo del doble clic es un poco antinatural.

He intentado jugar con setFocus pero aunque la ventana hija dice que ella es la que tiene el foco, sigue sin hacer caso al teclado.

¿Alguna idea? Muchas gracias a todos por anticipado.
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Focus en ventanas MDIChild Responder citando

Prueba con el método : BringToFront()
Un saludo
Volver arriba
Mensaje    Asunto: Responder citando

Muchas gracias Jean.

Probé lo q me dices pero sigue sin tirar, aunque tal vez sea que no lo estoy aplicando bien.

Lo que estoy haciendo es en el evento OnMouseDown de la rejilla de la ventana hija he añadido:
Código:

if (Button == mbLeft)
    this->BringToFront();


Es así o debería usarlo de otra manera?
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

Hola.
Sigo teniendo este mismo problema. Lo había dejado aparcado porque era una cosa secundaria, pero ahora quiero resolverlo. Ya he probado el BringToFront() y el SetFocus() es sus diferentes vertientes.
¿Hay alguien que tenga alguna otra idea de cómo resolverlo?
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

Pues nada... ya me lo arreglé con un gran trapiche. Lo que hice fue añadir al comienzo del evento OnMouseDown del StringGrid del form hijo dos líneas
Código:

FocusControl(panBotones);   // Aquí vale cualquier otro control
FocusControl(grdInstrucciones);

Como sólo me pasaba con el StringGrid el truco es establecer primero el foco en otro control cualquiera del formulario hijo (en este caso puse un panel) e inmediatamente ponérselo al grid.
Pues si alguien descubre una forma menos trapichosa de hacerlo que me lo ponga por aquí, y si no, aprovéchense de esta si se encuentran en una situación similar.
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.