Delphi - Clonar objetos

 
Vista:

Clonar objetos

Publicado por Ezeqquiel (8 intervenciones) el 21/03/2007 14:28:46
Hola amigos, bueno, eso, trabajo con programacion orientada a objetos, y en mas de una ocasion me vi en la necesidad de clonar una instancia de un objeto definido por mi, sabido es que la simple asignacion obj2 := obj1, solo es una copia del puntero de modo que ambas variables apuntan al mismo objeto. lo que yo necesito es tener dos instancias con las mismas caracteristicas se entiende.
Eh investigado un poco y creo que derivando mis clases de TComponent en lugar de hacerlo de TObject, dispongo de un metodo para clonar, no se si este en lo cierto. Quien sabe algo sobre este tema?. Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Clonar objetos

Publicado por Ibrink Gold (78 intervenciones) el 21/03/2007 14:47:35
Es cierto que en delphi para clonar deber hacerlo mediante en metodo, por lo que explicastes de la asignacion; este metodo se llama Assign(TPersistent) y es en esa misma clase que se encuentra. Pero no temas porque TComponent es derivada de TPersistent asi que todos los objetos implementan Assign.

Ejemp :

var
MyObj1, MyObj2 : TMyObjeto;

begin

MyObj1 := TMyObjeto.create(Self); { esto es porque decendiste de TComponent.
Yo generalmente lo hago de TPersistent cuando trabajo con classes del proyecto osea classes que no crean componentes sino que manipulan el proyecto.}

MyObj2 := TMyObjeto.Create(Self);
MyObj2.Assign(MyObj1); // listo.

end;

Nota : Si no vas a crear componentes no visuales utiliza TPersistent como clase base a menos que desees alguna funcionalidad especial que este en TComponent.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Clonar objetos

Publicado por Ezequiel (8 intervenciones) el 21/03/2007 15:38:07
Muchas gracias Ibrink Gold, se parece mas a lo que deseo hacer, voy a probarlo en mis aplicaciones, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Clonar objetos

Publicado por antonio (117 intervenciones) el 21/03/2007 22:33:45
pregunta :: en caso o para q se puede utilizar la clonacion de objetos? no me queda claro su uso. Si me pueden alcarar mi duda se los agradezco mucho.

saludos buen dia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Clonar objetos

Publicado por E.T. (1203 intervenciones) el 21/03/2007 23:36:58
Supongamos: Tenemos un juego de tetris, por los tanto necesitas muchos cuadritos, no sabemos cuantos depende del tiempo que duremos jugando, entonces tenemos las diferentes piezas y les asignamos un número, al azar elegimos uno de éstos y copiamos o clonamos la pieza y la mostramos, sin necesidad de tener infinidad de cuadritos esperando y los destruimos al no tener que usarlos, ese es un uso, que yo le dí haciendo un tetris en delphi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar