|
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.
|