Aquí es uno de los enfoques que puede utilizar:
1) Crear sus formas individuales, normal, excepto que use un TLayout, llámalo "LayoutMain", (alClient alineado) como padre de todos los controles en ese formulario.
2) En su "formulario maestro", cuando quiera traer una instancia de formulario para comportarse como lo haría con una interfaz MDI, cree un TLayout (llámelo "FormContainer" o algo así), colóquelo como hijo de eso (alineado a la parte superior) otro TLayout (llámalo "FormHeader"), que contiene los controles individuales para el título del formulario, los botones Minimizar/Maximizar/Cerrar y cualquier otra cosa que quieras en el encabezado "marco". Esto se llamacompuesto.
3) Crear una instancia de su formulario secundario (pero no lo muestran), entonces los padres que la instancia principal TLayout "LayoutMain" a su forma principal TLayout "FormContainer".
4) En el TLayout mencionado anteriormente (con el nombre "FormHeader"), déle los eventos OnMouseDown
y OnMouseMove
para proporcionar la capacidad de arrastrarlo alrededor del formulario maestro.
Cuando desee maximizar el formulario secundario dentro del formulario maestro, simplemente establecería la propiedad de alineación externa "FormContainer" de TLayout en alClient, recordando almacenar sus valores originales Top, Left, Width y Height dentro del formulario instancia para que pueda recuperarlos al presionar el botón Restaurar.
Ciertamente, esta es una solución bastante complicada, pero a mi leal saber y entender, esta es la única forma de lograr lo que está intentando hacer con FireMonkey tal como existe hoy (circa Actualización 2).
No esperaba que Embarcadero proporcionara ninguna forma de emulación MDI como parte de FireMonkey "out of the box", ya que MDI se considera un enfoque anticuado.
La solución más moderna sería usar Docking, como lo hace RAD Studio IDE. Esto proporciona lo mejor de ambos mundos, brindando al usuario la libertad de elegir qué formas secundarias quiere vincular con el formulario maestro, o mostrarlas por su cuenta (o cualquier combinación de arreglos acoplados).
Supongo que eso se arreglaría eventualmente ya que las Actualizaciones de XE2 todavía se lanzan. – Kromster