![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Nada más un detalle respecto del ejemplo de dec. La clase contenedora se encarga de la construcción y destrucción del objeto Pruebas, es decir, le pertenece. Por tanto hay que proteger la propiedad contra cambios no deseados: si se asigna
DePruebas.Pruebas := ObjetoPruebas estamos sustituyendo el objeto que originalmente pertenecía a DePruebas por otro y al hacer FPruebas.Free será este otro el que estemos destruyendo y el objeto original se habrá quedado atorado en memoria. Normalmente, para este tipo de propiedades hay que definir un método set:
donde SetPruebas se encargará de copiar el contenido. Puede hacerlo campo por campo aunque lo usual es transferir ese copiado al método Assign de TPruebas:
y dejar SetPruebas con: FPruebas.Assign(Value); // Saludos |
|
#2
|
||||
|
||||
|
Hola,
roman, me queda una duda, ¿viste que edité el código fuente para añadir el método "SetPruebas" tal como decías? Ahora bien, en donde se lee el comentario "{ ¿Acaso falta algo que hacer aquí? }"... ¿hay, efectivamente, que hacer algo más? Actualización: Me temo que sí que había que hacer algo... claro está... creo que con lo siguiente sería bastante, y si me equivoco aquí estoy para que se me diga en qué. Y en todo caso muchas gracias roman.
Última edición por dec fecha: 05-09-2005 a las 20:58:33. Razón: (actualización) |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|