Ver Mensaje Individual
  #2  
Antiguo 17-10-2012
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Reputación: 22
gatosoft Va camino a la fama
buen día titomigue,

Estuve intentando enteder tu problema y no comprendí el lio que tienes con "La Función", hubiese sido bueno que la publicaras para analizarla... asi, que intenté replicar tu error en mi Delphi y mi prueba salió bien... o por lo menos lo que yo esperaba....

Para esto cree un proyecto desde cero, con dos formularios (Form1, form2)... el primero tiene un Button1 y el segundo tiene un Edit1....

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

function ClonoForm(form:TForm; var AIndice:Integer):TForm;
var
  ms : TMemoryStream;
  clone : TForm;
  edit: TEdit;
begin
  ms := TMemoryStream.Create;
  try
    ms.WriteComponent(form) ;
    ms.Position := 0;
    clone := TFormClass(form.ClassType).CreateNew(Application) ;
    ms.ReadComponent(clone) ;
    clone.caption:='Clon'+IntToStr(AIndice);
    clone.name:='Clon'+IntToStr(AIndice);
    clone.Left := form.Left;//posicion de ventana
    clone.Top := form.Top;//posicion de ventana
    clone.Show; //muestro el clon
    Result := Clone;
  finally
    ms.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
Var Indice, i : Integer;
    ElClon: Tform;
begin
  Indice:= 1;
  Form2.Show;
  ClonoForm(Form2, Indice);
  Form2.Edit1.Text:='Hola, soy el original...!!!';
  for i := 0 to Screen.FormCount-1 do
     if Pos('Clon',Screen.Forms[i].Name) > 0 then
        Begin
          ElClon := Screen.Forms[i];
          TForm2(ElClon).Edit1.Text := 'Soy '+Screen.Forms[i].Name;
        End;
end;

end.

Tal vez lo que estás buscando tiene que ver con el objeto global Screen y su lista de forms activos....

nos comentas omo te va, o nos das mas detalles en caso que no sea loq ue buscas...

Un saludo,
Responder Con Cita