PDA

Ver la Versión Completa : MDI Child que contengo Otros MDI child.


Enan0
02-11-2012, 22:58:55
Hola Buenas.

Antes que nada voy a intentar aclarar la locura que he puesto en el titulo de Hilo.

Estoy necesitando, repertir una ventana (MDI child) que ya tengo funcionando correcta unas 10 veces mas, en forma de mosaico, el problema es que Estos mosaicos, deberian de estar contenido dentro de una ventana padre.

El proyecto que estoy utulizando funciona con Formularios MDI, por lo ahora la pregunta.

¿Es posible que un MDI Child, Contenga N Mdichild's?

Muchas gracias.

ecfisa
02-11-2012, 23:33:53
Hola Enan0.


Estoy necesitando, repertir una ventana (MDI child) que ya tengo funcionando correcta unas 10 veces mas, en forma de mosaico, el problema es que Estos mosaicos, deberian de estar contenido dentro de una ventana padre.

Eso se puede hacer sin problemas desde el MDIForm, por ejemplo:

...
function FormClone(aForm: TForm; aName: string):TForm;
var
ms : TMemoryStream;
F : TForm;
begin
ms := TMemoryStream.Create;
try
ms.WriteComponent(aForm) ;
ms.Position := 0;
F := TFormClass(aForm.ClassType).CreateNew(Application) ;
ms.ReadComponent(F) ;
F.Name := aName;
F.Caption := aName;
Result := F;
finally
ms.Free;
end;
end;

// llamada
procedure TMDIForm.Panel1Click(Sender: TObject);
var
i: Integer;
begin
MDIChild1 := TMDIChild1.Create(Application);
for i:= 10 downto 1 do
FormClone(MDIChild1, 'MDIChild'+IntToStr(i+1));
TileMode:= tbVertical;
Tile;
...
end;
...



¿Es posible que un MDI Child, Contenga N Mdichild's?

No, sólo un MDIForm puede contener MDIChilds.

Saludos. :)

Enan0
03-11-2012, 00:24:14
Gracias Ecfisa,

EL procedimiento de clonado, mas o menos lo tenia en mente, el problema que me surgia fue el que aclaraste al final.


No, sólo un MDIForm puede contener MDIChilds.


por lo que, no me quedara mas que crear un nuevo MDICLid, que contenga N veces el Contenido que necesito en forma de mosaico,

muchas gracias.