FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
¿Qué diferencia hay entre copiar y clonar objetos?
Hola,
Nunca uso estas características de la OOP en Delphi, ¿me podríais asesorar un poco? Muchas gracias. |
#2
|
||||
|
||||
¿En delphi se pueden clonar objetos? Será en las nuevas versiones porque antes no era posible.
En todo caso, aunque no sé si responda a tu duda, has de saber que en delphi las variables de tipo objeto son, en realidad, apuntadores al objeto, de manera que, cuando copias uno a otro:
en realidad sólo estás copiando los apuntadores, de forma que ObjetoA y ObjetoB son dos apuntadores que apuntan al mismo objeto. Si haces un cambio en las propiedades de ObjetoA, dicho cambio se reflejará en ObjetoB. Una clonación de objetos -que, repito, no sabía que se puede hacer en delphi- es crear un objeto aparte pero exactamente igual al primero. En ese caso, los cambios a un objeto ya no se reflejarían en el otro. En el caso de delphi 7, que es el que conozco, no existe tal cosa como la clonación de objetos, aunque hay algo similar en los objetos de la clase TPersistent (y derivadas) con los métodos Assign y AssignTo, con los cuales se pretende hacer una copia de un objeto, aunque no es tanto como una clonacón y muchas veces tiene uno que implementar dichos métodos explícitamente. // Saludos Última edición por roman fecha: 30-10-2012 a las 16:31:55. |
#3
|
||||
|
||||
A mi me gustaría ver noob, un pequeño ejemplo de copiar un objeto y clonar un objeto, para saber de qué estamos hablando.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
Hola,
Lo he resuelto. roman, he visto una forma de clonar objetos en Delphi. Neftali, pongo un ejemplo de todo lo que he hecho. Por ejemplo, tengo un objeto 'myObject' que quiero mantener en el atributo 'FObject' de otro objeto, pero quiero que mantenga su valor original aunque el objeto 'myObject' cambie en un futuro. Para ello, no me queda otra que clonar el objeto. Pongo el código que he utilizado:
Luego, quiero que ese objeto clonado tenga los mismos valores que el objeto 'myObject', por ello, hago una copia:
El uso desde una clase externa a 'cMyClass' sería así:
Funciona como esperaba, espero que se entienda y le sirva a alguien. Saludos. Última edición por noob fecha: 30-10-2012 a las 21:55:13. |
#5
|
||||
|
||||
Bueno, lo que estás haciendo es similar a lo que te comenté del AssignTo del objeto TPersitent. Realmente el método Clone sale sobrando:
// Saludos |
#6
|
||||
|
||||
Hola noob.
También podrías hacer la creación y copia de los atributos en un paso:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
||||
|
||||
Ahora ya sí te he entendido.
Gracias por la explicación.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Diferencia entre versiones | FunBit | MySQL | 2 | 18-01-2007 09:45:47 |
Diferencia entre Delphi | emeritos | Varios | 1 | 18-11-2006 17:19:50 |
Diferencia entre Consultas | santi33a | MS SQL Server | 1 | 08-11-2005 08:19:22 |
Diferencia entre .GDB y .FDB | CarlosHernandez | Firebird e Interbase | 3 | 14-09-2005 04:08:49 |
Diferencia entre fechas.... | seb@ | OOP | 1 | 21-08-2003 15:57:22 |
|