FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
¿Cómo saber si un objeto está ya creado?
Hola, tengo una clase con un método que me sirve para inicializarla, la clase tiene como atributos otros objetos:
y aunque funciona siempre me gustaría hacer algo así;
¿Cómo puedo saber si un objeto está ya creado? ¿Basta con hacer lo siguiente?
Saludos. |
#2
|
|||
|
|||
Diría que con todos los objetos es los mismo, por ejemplo la clase TForm, que en este pequeño ejemplo seria FFacturar, si no está creado, pues lo crea y ya
if not Assigned(FFacturar) then FFacturar:=TFFacturar.Create(Self); Espero te sirva Un caluroso saludo desde BOGOTA - COLOMBIA
__________________
Ing. LUIS FERNANDO ORJUELA BOGOTA - COLOMBIA |
#3
|
||||
|
||||
Puedes utilizar Assigned (aunque me temo que al final va a ser lo mismo).
Y para liberar y asegurarte:
__________________
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
|
|||
|
|||
¿Para liberar he de hacer FreeAndNil(miObjeto); en vez de Objeto.Destroy; o Objeto.Free? ¿No es lo mismo?
|
#5
|
||||
|
||||
Bueno, si. El FreeAndNil, hace las dos cosas. Libera y apunta a nil.
Así te aseguras de que si porteriormente preguntas if Assigned() funcionará 100%
__________________
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. |
#6
|
||||
|
||||
Si creas un objeto y luego lo liberas, el puntero seguirá teniendo el valor que tenía.
Por lo tanto, cuando lo liberas, además deberías ponerlo a nil. Self.Atributo1 := cFoo.Create; // Self.Atributo=0192893 --- Self.Atributo1 := cFoo.Free; // Self.Atributo=0192893 --- FreeAndNil(Self.Atributo1); // Self.Atributo=nil |
#7
|
|||
|
|||
Gracias, a partir de ahora utilizaré FreeAndNil en vez de llamar al método Free.
Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Saber si se ha creado un objeto | Cecilio | Varios | 30 | 15-11-2008 13:11:13 |
Como saber si me frame esta creado en cierto evento? | Albano | OOP | 2 | 15-03-2007 23:13:44 |
Saber si un formulario ya está creado o no. | Tecnic2 | OOP | 2 | 27-09-2004 13:27:01 |
Como puedo saber si esta creado un formulario??? | Roger | OOP | 1 | 13-04-2004 15:57:49 |
¿Cómo saber si un Form está creado? | nesetru | Varios | 5 | 09-02-2004 12:59:37 |
|