Hola doctorhd.
Cita:
... ,¿Assigned, comprueba realmente que el objeto ha sido creado?...
|
No, la función
Assigned comprueba si un puntero o una variable procedimental está o no asignada. Dicho de otro modo, la función
Assigned devuelve
True si el argumento es diferente de
nil o
False si es igual.
Pero una clase puede no haber sido instanciada (o ya liberada) y su valor ser diferente de
nil, como puede verificarse en este ejemplo:
Código Delphi
[-]
...
const
MSG: array[Boolean] of string = ( 'DESASIGNADO', 'ASIGNADO' );
var
o : TObject;
begin
ShowMessage( MSG[Assigned(o)] );
o := TObject.Create;
o.Free;
ShowMessage( MSG[Assigned(o)] );
o := TObject.Create;
o.Free; o := nil; ShowMessage( MSG[Assigned(o)] );
Saludos