Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Centrado de pantallas MDI en el fondo de la aplicación (https://www.clubdelphi.com/foros/showthread.php?t=49167)

jjoliveras 15-10-2007 13:42:55

Centrado de pantallas MDI en el fondo de la aplicación
 
Buenos días,

Tengo el siguiente problema y no doy con la tecla. En mi aplicación tengo en la parte superior un menu, inmediatamente debajo tengo un "coolbar" que contiene una "toolbar" y después todo el espacio libre a modo de escritorio y en la parte inferior una "statusbar".

Bien el problema es el siguiente. Cuando abro una ventana mdichild centrada al escritorio (poDesktopCenter) el top de la ventana es el equivalente de mostrar la ventana centrada mas el tamaño del "coolbar" con lo que la ventana sale muy descentrada.

De igual forma, coloqué un panel en el lateral derecho de la pantalla principal para mostrar una serie de cosas y las ventanas al abrirse se abren por detrás de él, no me lo coge como que forma parte de la ventana principal y que lo que ocupa ya forma parte del escritorio.

¿Alguien tiene una idea de como solucionar alguno de estos problemas?:confused:

Gracias de antemano.

Rockin 15-10-2007 15:05:31

A mi me pasa lo mismo y estoy desesperado tengo un ExpressNavBar a la izquierda y por mas que cambio las propiedades del form MDI o me sale detras de la barra o me sale a la derecha de la pantalla pero con los scroll habilitados y no quiero eso. Solo que se muestre el form pegado justo a la barra de navegacin. a ver si nos puede ayudar alguien

Saludos

gluglu 15-10-2007 15:37:13

No tiene solución. :o

Los Panel's siempre estarán delante de los MDIChild. Es un asunto interno que no se puede modificar.

Hay dos maneras de solucionarlo.

1. Mostrando y ocultando el Panel, cosa que creo que no es lo que pretendeis. :(

2. Crear otro MDIChild y situar el Panel dentro de dicho Form MDIChild. De esta manera lo podreis manejar a vuestro antojo.

Incluso, para que quedara más bonito, se podría crear un Form normal, que no sea MDI, sin borde (propiedad BorderStyle := bsNone) y colocar el Panel dentro de ese Form. De nuevo lo podreis manejar mucho mejor a vuestro antojo.

Espero haberos ayudado. ;)

jjoliveras 15-10-2007 17:05:06

Ante todo gracias por las molestias de contestarme.

En cierto modo tendría su lógica, pero no entiendo porque cuando le dices a la ventana mdichild que maximice, respeta y se adapta perfectamente al escritorio que te deja con el panel incluido. Si la abres normal aparece por detrás, si maximizas se adapta es un poco ilógico.:confused:

Rockin 15-10-2007 17:44:19

No se le puede indicar al form mdi en que lugar del principal debe a aparecer? ni en tiempo de ejecucion ni nada?

Saludos

Rockin 15-10-2007 17:51:38

Yo lo he solucionado poniendole a la propiedad left, el valor que quiero antes del metodo show.

Saludos.

jjoliveras 15-10-2007 19:02:43

Gracias Rockin,

eso es justo lo que he probado, lo meti dentro de una función que me abre los form y controla que no estén ya abiertos, poniendole que le reste la mitad del tamaño del panel y me funciona bien.

Gracias de todos modos y siento no haber contestado antes mostrando la solución que encontre. :D


La franja horaria es GMT +2. Ahora son las 15:37:26.

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