Copiar Objetos
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:
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,
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
Curtidas 0
Respostas
Steve_narancic
21/11/2006
Tente:
Obj1.assign(Obj2)
GOSTEI 0
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:
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
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.
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
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.
Verifique nos outros componentes como eles fazem o Assign.
GOSTEI 0
Carlosfim
21/11/2006
Obrigado pela dica. acho que vou ter que implementar o Assign do meu objeto msm.
Obrigado a todos.
Obrigado a todos.
GOSTEI 0