Qual é o Design Pattern que essa função Clone() implementa? Pra mim, isso é 
apenas um simples uso de streaming da VCL.Sds.


To: [EMAIL PROTECTED]: [EMAIL PROTECTED]: Thu, 23 Aug 2007 09:40:12 
-0300Subject: Re: [delphi-br] Copiar (Clonar) grupo de componentes




Grande MagnumEste é um exemplo de Design Patterns que eu peguei, é do Marco 
Cantú. Eleclona componentes, veja se te serve.//Esta é a Unit da Classeunit 
UPrototype;interfaceuses Classes,SysUtils;function Clone (c: TComponent): 
TComponent;implementationfunction Clone (c: TComponent): TComponent;varmStream: 
TMemoryStream;beginmStream := TMemoryStream.Create;trymStream.WriteComponentRes 
(c.Name, c);mStream.Position := 0;c.Name := c.Name + IntToStr (random 
(1000));Result := TComponentClass(c.ClassType).Create 
(c.Owner);mStream.ReadComponentRes 
(Result);finallymStream.Free;end;end;end.//Para usar tente istoprocedure 
TForm1.Button1Click(Sender: TObject);beginwith Clone (Edit1) as TControl 
dobeginParent := self;SetBounds (Edit1.Left,Edit1.Top + 30, Edit1.Width, 
Edit1.height);end{end with};end;//fimIsto copia o objeto com todas as 
propriedades do mesmoBoa Sorte,Benn AlleEm 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] 


_________________________________________________________________
Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver 
offline. Conheça  o MSN Mobile!
http://mobile.live.com/signup/signup2.aspx?lc=pt-br

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

Responder a