Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   desaparece el aspa de cerrar la ventana (https://www.clubdelphi.com/foros/showthread.php?t=61186)

alopete 29-10-2008 11:59:15

desaparece el aspa de cerrar la ventana
 
Buenas:
A ver si alguien me puede ayudar:tengo un problemillla para cerrar las ventanas de los fsMDIChild. Trabajo con Delphi 2006.

Tengo un fsMDIForm y cuando entro en los formularios "hijos" no me aparece la X de cerrar la ventana. Pero si me voy a otra (que tampoco me muestra la X) y vuelva a la primera, si que me aparece. Alguien sabe porque no me aparece la primera vez?

Un saludo
Alopete

Lepe 29-10-2008 12:48:56

No dices si está maximizado o no.... quizás esto te ayude:

Añade un MainMenu al MDIForm (el principal).

Cuando se maximiza una ventana hija, el aspa aparece en el MainMenu.

Saludos

alopete 29-10-2008 13:06:04

Gracias por responder Lepe:

No he dicho antes que ya tengo un MainMenu y que las ventanas estan maximizadas. Y aun asi no me aparece.

en el onCreate del Form hijo tengo puesto (para ver si funcionaba):

BorderIcons := BorderIcons +[biSystemMenu,biMinimize,biMaximize];
WindowState := wsMaximized;


Pero sigue sin aparecer.
Lo curioso es que en mi pc si que aparece siempre pero cuando instalo en otros, no. Me hace pensar que alguna dll no este actualizada o alguna similar pero no se que puede ser.

Lepe 29-10-2008 13:44:56

Si piensas hacer una interfaz así tipo "emule" donde las ventanas hijas siempre están maximizadas, desaconsejo el uso de MDI.

Usa Frames. Puedes crearlas dinámicamente o en diseño... como quieras.

Si quieres más info, avisa.

alopete 29-10-2008 14:53:04

Hola de nuevo:

Acabo de ver porque no me salia:
en el onActivate de los formularios hijos, tenía puesto lo siguiente:

windowState:=wsMaximized;

Esto lo puse porquq si teniendo uno de formulario abiertos, abría otro que fuera modal (y no ocupara toda la pantalla), me reducia el tamaño del anterior al tamaño de diseño.

Lo que sigo sin comprender es porque me pasa en algunos ordenadores y en otros no.

Lo de lo frames si que me interesa porque tengo en mente hacer menús como los de win xp de "Agregar y quitar programas", con unos botones iconicos a la dcha, en otro frame.

Lepe 29-10-2008 16:10:05

Me alegro de que solucionaras el problema. El comportamiento que describes es normal en MDI. O tienes todas las ventanas maximizadas, o todas restauradas, pero si abres una en modo wsNormal, esto NO hace que las maximizadas se restauren.

Lo del menú de Agregar y quitar, lo puedes conseguir fácilmente con un scrollbox y ahora los frames en su interior creados a demanda. Aquí tienes un ejemplo de cómo trabajar con frames en tiempo de ejecución, no es exactamente lo que pides.

Edito: palabrita en rojo.

alopete 29-10-2008 16:37:11

jajaj

No lo he resuelto, solo se porque pasa. La verdad es que aun no se como solucionarlo, el problema sigue ahi. Pero ya me falta menos.

En cuanto tengo un poco mas de tiempo mirare que me dices de los frames
Muchas gracias por todo

Lepe 29-10-2008 20:13:49

Acabo de modificar mi mensaje anterior... se vé que me tragué una palabra :D.

Suelo tener ventanas hijas maximizadas y al abrir una en modal, NO se restauran las ventanas hijas.

Si una ventana hija se abre en modo wsNormal, entonces sí, todas las maximizadas también se restauran. Este es el comportamiento normal de la interfaz MDI.

Revisa los eventos OnShow, OnActivate, OnDeactivate y la propiedad state de cada Form.

Saludos

alopete 30-10-2008 11:00:15

Hola de nuevo:
Al final he quitado del onActivate la instrucción que maximiza las ventanas y ya va bien.
Al abrir una modal me mentiene el aspecto de las mdchild. EL problema era que hania alguna que yo pensaba que era modal y realmente no lo era, era mdchild tb. De esta forma, al abrirla y no estar maximizada, se restauraba las demás ventanas.

Muchas gracias por todo


La franja horaria es GMT +2. Ahora son las 09:32:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi