Fórum Copiar Objetos #333377

21/11/2006

0

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

Responder

Posts

21/11/2006

Steve_narancic

Tente:

Obj1.assign(Obj2)



Responder

Gostei + 0

21/11/2006

Carlosfim

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

     ...



Responder

Gostei + 0

21/11/2006

Rodc

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.


Responder

Gostei + 0

21/11/2006

Rodc

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


Responder

Gostei + 0

21/11/2006

Carlosfim

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar