FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
mantener un panel siempre al fondo en mdi aplicación
Hola amigos, gusto como siempre,
tengo una aplicación MDI con un panel de fondo de contenedor de otros controles, como hago para mantener el panel siempre al fondo de los demas formularios?? tengo esto:
Aparentemente con esto bastaría, pero cuando cambio de formularios mediante el menu de sistema en la opción "siguiente", el panel se sobreposiciona sobre el formulario que cambie, podria ser manejando el mensaje que llama al siguiente formulario, pero mmm nose, me gustaria si con el mensaje wm_windowposchanging del panel bastaria Gracias Última edición por _CALI fecha: 27-12-2012 a las 05:47:34. |
#2
|
||||
|
||||
_CALI,
Cita:
El código anterior mantiene el formulario en la última posición del orden Z (Posición más baja), esto garantiza que nunca se superponga a otro formulario. Revisa esta información: Cita:
Nelson. |
#3
|
||||
|
||||
Hola _CALI
Cuando diseñaron las aplicaciones Multiple Document Interface, la idea no fué que el MDIForm fuera contenedor de otros controles que MDIChilds, ToolBars o controles que posean la propiedad Align. Un MDIChild se ubicará dentro del área cliente libre del MDIForm. Esta área consiste en todo el espacio no ocupado por controles alineados a alguno de los cuatro bordes (alBottom, alTop, alRight, alLeft). Según entiendo, deseas que el TPanel quede por debajo de los MDIChilds, y por lo te mencioné arriba, no veo el modo de hacer lo que buscas con un control no alineado en un entorno MDI. La solución más sencilla entonces, es darle alguna de esas alineaciones al TPanel y de ese modo los MDIChilds no serán solapados por él. Otra alternativa que se me ocurre es ocultar el TPanel mientras exista al menos un MDIChild abierto y visualizarlo si no lo hay. Para evaluar esto, habrá que disparar y capturar algún evento cuando cualquiera de ellos se cierra. Te adjunto un ejemplo que consta de un MDIForm y tres MDIChils que se comportan de este modo por que el código me parece un poco extenso para ser claro en un mensaje. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 10-04-2013 a las 20:18:35. |
#4
|
|||
|
|||
Gracias por tu colaboración ecfisa y a los demás tambien,
Talvez no fui muy claro, pero lo que quiero es que el panel se muestre siempre el ultimo sitio del Z orden, asi hayan formularios hijos abiertos Aquí les dejo la solucion que escribi: la definición del panel esta en el formulario padre, primero que nada hay que colocar un panel en el formulario padre y luego sobre el panel cualquier control
luego en el formulario hijo...
Manejando los mensajes WM_WINDOWPOSCHANGING del panel y el formulario hijo, se consige que el panel este siempre al fondo y otra cosa mas.. se dieron cuenta que cuando minimizan un formulario, este se queda como ActiveMDIChild?, con un mensaje de ususario lo que hace es establecer el ActiveMDIChild del ultimo formulario activo al minimizarlo. Saludos y Gracias denuevo !!! Última edición por _CALI fecha: 29-12-2012 a las 04:08:43. |
#5
|
||||
|
||||
_CALI,
Cita:
Revisa este código: El código anterior mantiene el TPanel en el Orden Z mas inferior, permitiendo que el TPanel siempre este visible y nunca se superponga a un MDIChild. Todo el código de control esta en el MDIForm, no hace falta colocar ningún código adicional en los MDIChild. Quizás esta solución pueda ser adaptada a tu proyecto. La aplicación implementada esta en el siguiente link: http://terawiki.clubdelphi.com/Delph...+MDI+Forms.rar Espero sea útil Nelson. Última edición por nlsgarcia fecha: 30-12-2012 a las 01:21:25. |
#6
|
|||
|
|||
...Claro, pero aver dibuja el panel del porte del formulario padre y luego minimiza los formularios hijos y comprenderás mejor lo que digo.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
panel siempre visible | RebeccaGL | Varios | 4 | 07-10-2011 18:29:37 |
Mantener el Formulario principal en el fondo. | Critter | Lazarus, FreePascal, Kylix, etc. | 5 | 25-10-2010 10:04:27 |
Mantener viva la aplicación | HombreGordo | Varios | 9 | 04-11-2008 20:57:24 |
Mantener Aplicacion Arancada | ramonibk | API de Windows | 10 | 26-10-2004 18:25:00 |
Mantener Form1 siempre detrás de Form2 | Gorka | Varios | 1 | 13-10-2004 13:13:48 |
|