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 

No entiendo por qué da este error

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: No entiendo por qué da este error Responder citando

¡Hola a tod@s!

A ver si me explico con claridad:

Tengo un panel en el que muestro los datos correspondientes a distintos listados antes de imprimirlos. Como cada listado tiene sus particularidades, el panel que he mencionado antes contiene a su vez varios paneles con distintos campos (dependiendo del listado a visualizar). Hasta ahí todo bien. El problema viene cuando quiero cambiar de listado. Si estoy en el listado 2 y paso al uno (mediante un menú) lo hace bien. Pero si, acto seguido, intento volver al listado anterior, me da error, en concreto esto:
Cannot focus a disabled or invisible window.

Lo que hago para pasar de un listado a otro (mejor dicho, de un panel a otro) es ocultar el actual y mostrar el nuevo, mediante la propiedad visible de los paneles. El error salta al intentar ocultar el panel actual. Quizá un poco de código ayude:

Selecciono el primer listado
...
panel1->Visible = true;
...

Selecciono el segundo listado:
...
panel1->Visible = false;
panel2->Visible = true;
...

Intento volver al listado 1:
...
panel2->Visible = false; <-- aquí salta el error
panel1->Visible = true;
...

Lo que no entiendo es por qué me dice que no puedo dar el foco a una ventana invisible o desactivada, si lo que trato de hacer es ocultar un panel, no dar el foco.

En fin, a ver si alguien me puede echar una mano.
Salu2 y gracias. Wink

Volver arriba
Mensaje    Asunto: focus or not focus Responder citando

El problema, cuando quieres volver a PANEL1, es que el FOCUS esta sobre un control de PANEL2, y si le haces PANEL2->VISIBLE = FALSE, se produce el error que comentas.

Te aconsejaria que en vez de visualizar y ocultar paneles uses un
TPageControl con tantas TTabSheet como necesites.

Pero lo que tambien puedes probar es, antes de ocultar PANEL2,
hacer visible PANEL1 y hacerle un SETFOCUS a un control de PANEL1

Espero que te sirva
Volver arriba
Mensaje    Asunto: Responder citando

¡Hola Luchomen!

Gracias por contestar. Efectivamente es por lo que tú dices, por poner la propiedad Visible a "false" del panel que tiene el foco. Lo que me despistó fue el mensaje de error, ya que me decía justo lo contrario.

En fin, gracias y salu2. Wink
Volver arriba
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.