Ver Mensaje Individual
  #1  
Antiguo 12-08-2006
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Reputación: 19
xEsk Va por buen camino
Duplicar "objetos"

Hola.

A ver, os explico el tema, puede q la pregunta sea muy estupida (pero no habia usado hasta hace poco la POO en delphi xD).

La cosa esq tengo un objeto propio, q no es nativo del delphi, como por ejemplo:

Código Delphi [-]
TMyClass = class   
// codigo 
end;

o

Código Delphi [-]
TMyObject = class (TObject)   
// codigo 
end;

Y quiero duplicarlo, osea crear 2 objetos iguales pero q sean independientes. Lo q esta claro esq si hacemos algo parecido a esto:


Código Delphi [-]
var   
  obj1, obj2: TMyObject;  

begin   
  obj1:=TMyObject.Create;   
  obj1.Propiedad:='Hola Caracola!';     
  obj2:=obj1;     
  obj1.Free;   
  ShowMessage(obj2.Propiedad); // Resultado = ''  (nada)   
  obj2.Free; // Error: Invalid pointer operation


Ok, esto es normal q pase, ya q lo unico q hace es q el obj2 copia el puntero de obj1, y q si liberamos el obj1, el obj2 por asociacion se libera tambien, pero mi pregunta viene aqui: ¿Como lo hago para crear un objeto duplicado identico pero independiente uno del otro?

He buscado por el foro, "copiar objeto", y me ha salido un post parecido a este, pero era para copiar Componentes visuales, y una de las respuestas me dio una idea, y es el "Assign", pero claro mis clases no tienen este proceso. ¿Deberia implementarla o heredarla de un objeto de nivel mas alto? ¿Hay alguna solucion facil y q no sepa q existe (q seria lo mas seguro xD)?

Ahi va el tema, gracias por adelantado.

Saludos.
Responder Con Cita