Ver la Versión Completa : Assigned y Free
gluglu
14-05-2007, 20:40:52
Hola compañeros !
Por qué después de hacer un Free de un form, la pregunta de Assigned vuelve a dar true ?
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
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
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
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.