Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Assigned y Free (https://www.clubdelphi.com/foros/showthread.php?t=43546)

gluglu 14-05-2007 20:40:52

Assigned y Free
 
Hola compañeros !

Por qué después de hacer un Free de un form, la pregunta de Assigned vuelve a dar true ?

Código Delphi [-]
MiForm.Free;
...
if Assigned(MiForm) then
  'Pasa por aquí y es verdadero' !

Debo utilizar alguna otra pregunta diferente del Assigned ?

Gracias por vuestra ayuda :o

dec 14-05-2007 20:45:51

Hola,

Depende... pero a veces puede ser útil usar "FreeAndNil" en lugar de "Free". Creo que por ahí pueden ir los tiros aquí. La variable "MiForm", en este caso, apunta a "algo" que tal vez es sólo basura en la memoria, desde luego no será al objeto... que ha sido liberado. Pero si a la variable "MiForm" le asignas el valor "nil",... entonces "Assigned" no debería retornar "true"... si no estoy equivocado. :)

roman 14-05-2007 20:46:33

Porque Assigned únicamente revisa si la variable tiene el valor nil y Free destruye el objeto pero no pone en nil a la variable; lo cual es lógico pues ni siquiera puede saber cuál o cuáles variables hacen referencia a él. En su lugar, puedes usar FreeAndNil(Objeto).

// Saludos

dec 14-05-2007 20:48:28

Hola,

Bueno, sin duda, la respuesta de Román, en dos líneas, parece más razonable y desde luego es más clara que la mía, la cual si me pongo con ella de nuevo tal vez revisaría, luego de leer lo que Román ha dicho. O sea. :)

gluglu 14-05-2007 21:03:37

Muchas gracias a los dos.

Como siempre vuestra ayuda es fabulosa ! :p


La franja horaria es GMT +2. Ahora son las 06:17:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi