Tema: clonar forms
Ver Mensaje Individual
  #1  
Antiguo 03-06-2010
titomigue titomigue is offline
Miembro
 
Registrado: may 2010
Posts: 17
Reputación: 0
titomigue Va por buen camino
clonar forms

Hola, mi problema es que tengo un form principal, y otro preparado que es el que clono.

Desde el principal llamo a esta funcion:

procedure FormClone(form : TForm) ;
var
ms : TMemoryStream;
clone : TForm;
begin
ms := TMemoryStream.Create;
try
ms.WriteComponent(form) ;
ms.Position := 0;
clone := TFormClass(form.ClassType).CreateNew(Application) ;
ms.ReadComponent(clone) ;
clone.caption:=Datos.TablaListado.Fields.FieldByName('Nombre').AsString;
clone.Left := form.Left;
clone.Top := form.Top;

clone.Visible:=false;
Form3.Edit1.Text:=IntToStr(indice+1);//esto es una variable que luego uso
clone.Show;
finally
ms.Free;
end;
end;

Asta aqui todo bien, me clona la ventana, unas veces 3, otras 4 veces... lo que necesite el programa, y la ventana clonada comienza a trabajar.

Como puede verse en la funcion, la ventana está oculta. El problema es que hay algunas ocasiones en el que tengo que introducir algun dato de forma manual, y detecto cuando es, pero no consigo poner la ventana visible.

Es decir tengo 4 ventanas generadas a partir de esa funcion trabajando y quiero en un momento dado, que la ventana 2 (por ejemplo) se ponga visible, no se como puedo referirme a esa ventana en concreto para ponerla visible, he probado a poner form3.visible:=true; (form3 es la ventana que clono) y lo que hace es abrirme una nueva...

Alguna idea? gracias.
Responder Con Cita