Copiar Objetos

Delphi

21/11/2006

Caros amigos,

Tenho o seguinte problema: Preciso copiar um objeto em outra variável do mesmo tipo, mas o que acontece é qye as duas variáveis passam a apontar para o mesmo objeto, e não uma cópia real. Estou trabalhando da seguinte forma:

...
var
   Obj1: TFiltro; //Classe simples que eu criei
   Obj2: TFiltro;

...

begin
   Obj1 := TFiltro.Create;
   
   ...   //Aqui faço diversas operações e altero propriedades de Obj1

   Obj2 := Obj1;    //Neste ponto preciso duplicar o objeto, preciso criar outro objeto (obj2) idêntico ao primeiro, mas que sejam independentes


Da maneira que estou fazendo as duas variáveis (Obj1 e Obj2) passam a apontar para o mesmo objeto. Assim, quando eu altero Obj1 a variável Obj2 também é alterada.

Como faço para copiar Obj1 em Obj2 sem que eles sejam o mesmo objeto?

Obrigado,


Carlosfim

Carlosfim

Curtidas 0

Respostas

Steve_narancic

Steve_narancic

21/11/2006

Tente:

Obj1.assign(Obj2)



GOSTEI 0
Carlosfim

Carlosfim

21/11/2006

Não funcionou!!!

O Delphi diz que o identificador (Assign) não foi declarado.

Obj1 e do tipo TFiltro, que é uma classe que eu criei da seguinte maneira:

type
   TFiltro = class
   
       ...

    Private

     ...



GOSTEI 0
Rodc

Rodc

21/11/2006

No tópico http://forum.clubedelphi.net/viewtopic.php?t=66805 eu coloquei um código que fiz em C++ para copiar todas as propriedades de um componente para outro.
Se não me engano, no Help do Delphi tem um exemplo do código em Pascal. Tenta localizar o nome das funções no Help do Delphi.


GOSTEI 0
Rodc

Rodc

21/11/2006

Ou implemente a função Assign no seu componente. O que seria o mais correto.
Verifique nos outros componentes como eles fazem o Assign.


GOSTEI 0
Carlosfim

Carlosfim

21/11/2006

Obrigado pela dica. acho que vou ter que implementar o Assign do meu objeto msm.
Obrigado a todos.


GOSTEI 0
POSTAR