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]