FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Ahhh...
Claro, mi intencion era clonar el objeto para usarlo de almacenamiento temporal y al liberarlo me pasaba lo que ha explicado Nuño. ¿Y si quiero clonarlo , como se debería hacer? hay algo como Copy...? PD: Algo hemos avanzado con los conceptos de objetos... Lo reconozco he usado algun Destroy por ahi PD2: Muy buena explicacion.. concluyendo debo expresar mi nivel de Delphi con una variable Double; var Nivelouble; .. Nivel:=0.001; |
#2
|
||||
|
||||
Cita:
Sirva como ejemplo la clase "TStrings". Puede clonarse un objeto de esta clase asignando la propiedad Text, es decir:
Ahora los dos objetos contienen una copia idéntica de las cadenas, pero cada uno es independiente. Sin embargo este sistema sólo sirve para esta clase y sus derivadas (por ejemplo, TStringList). |
#3
|
||||
|
||||
Ñuño, recuerda tambien:
Para clonar objetos está el método Assign, pero pertenece a TPersistent y puede que incluya muchas cosas que no quieras. Además debes modificar el método Assign en tu clase para que sea 100 % operativo, total, como he soltado un rollo ahí vá lo que deberías hacer: Y ahora si podemos usar un código como...
Esto que has visto es realmente lo que hace el método TPersistent.Assign(), pero es más lioso de entender por la herencia (la primera vez que vi el código de Assign no entendí nada de nada). Edito: como me quedé intrigado hice la prueba, Delphi si clona los registros con el operador ":=" obtenemos el mensaje "a.nombre es juan b.nombre es pepe"
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 08-04-2010 a las 19:20:16. |
#4
|
|||
|
|||
Muchas gracias por las lecciones magistrales.
A ver si con toda esa ayuda puedo terminar mi programa.. Un saludo. Una ultima pregunta: ¿Si libero ListaSprites, se libera la memoria de los objetos Secuencia que estan en ListaSprites? Código:
for i:=1 TO MAXBOTS do if ListaSprites[i]<>nil then ListaSprites[i].free; Código:
type TSprite = class public x, y, xAnterior, yAnterior: Integer; ColorTransparente: TColor; Imagen, Mascara,buffer: TImage; Seleccion: integer; deltx,delty:integer; Orientacion:TOrientacion; Secuencia: Array [1..MAXSEQ] of TSecuencia; Última edición por alquimista fecha: 09-04-2010 a las 00:57:07. |
#5
|
||||
|
||||
Cita:
Por cierto, gracias por la explicación acerca de "Assign". Cita:
|
#6
|
||||
|
||||
Una regla que es bueno recordar siempre: lo que se crea por código, se debe destruir por código.
|
#7
|
||||
|
||||
Cita:
El tema viene por esto:
aquí estamos creando nosotros la ventana, pero le decimos que Delphi la destruya automáticamente al terminar la aplicación; nosotros no tenemos que destruirla. Caso bien distinto a: donde nosotros lo creamos y nadie se hará cargo de su destrucción. Nosotros debemos destruirla en el OnClose o llamar a form2.Free
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Crear Clases propias o Usar Existentes | jorllazo | Debates | 19 | 27-04-2007 03:07:39 |
Crear y utilizar librerías de clases | Val | OOP | 2 | 13-04-2007 17:27:11 |
Crear clases desde Delphi | albertoP | OOP | 6 | 19-09-2006 21:47:05 |
crear clases en delphi | alextmb | Varios | 6 | 24-04-2006 01:40:45 |
Como usar correctamente ReplaceDialog? | clanmilano | Varios | 1 | 06-02-2006 13:41:57 |
|