Grande Magnum

Este é um exemplo de Design Patterns que eu peguei, é do Marco Cantú. Ele
clona componentes, veja se te serve.


//Esta é a Unit da Classe

unit UPrototype;
interface
uses Classes,SysUtils;

   function Clone (c: TComponent): TComponent;

implementation


function Clone (c: TComponent): TComponent;
var
   mStream: TMemoryStream;
begin
   mStream := TMemoryStream.Create;
   try
      mStream.WriteComponentRes (c.Name, c);
      mStream.Position := 0;
      c.Name := c.Name + IntToStr (random (1000));
      Result := TComponentClass(c.ClassType).Create (c.Owner);
      mStream.ReadComponentRes (Result);
   finally
      mStream.Free;
   end;
end;
end.
//Para usar tente isto


procedure TForm1.Button1Click(Sender: TObject);
begin
   with Clone (Edit1) as TControl do
      begin
         Parent := self;
         SetBounds (Edit1.Left,Edit1.Top + 30, Edit1.Width, Edit1.height);
      end
   {end with};

end;



//fim

Isto copia o objeto com todas as propriedades do mesmo



Boa Sorte,

Benn Alle
Em 22/08/07, Magnun Oliveira <[EMAIL PROTECTED]> escreveu:
>
>
> Boa Tarde a todos ...
>
> Tenho um sistema em que o usuario faz algumas modificações, cria, destroi,
> move, altera o tamanho, etc ... de alguns componentes.
>
> Surgiu uma duvida: Preciso copiar todos esses componentes para um segundo
> Form, os componentes criados estão com o mesmo parent e o owner é o
> formulario.
> Há alguma forma de copiar esse Component "parent" e, todos os componetes
> relacionados a ele, serem copiados e mantidas as propriedades? Como se fosse
> um CTRL+C e CTRL+V? ou vou ter de criar um a um novamente?
>
> Obrigado.
>
> __________________________________________________________
> Encontre o que procura com mais eficiência! Instale já a Barra de
> Ferramentas com Windows Desktop Search GRÁTIS!
> http://desktop.msn.com.br/
> 
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a