Мне интересно, почему после того, как я вызываю метод Free
, объект не является nil
.
Что я имею в виду, например, следующий класс:Класс деструктора в TObject и NIL Delphi
type Ta = class(TObject)
public
i: integer;
destructor Destroy; override;
end;
destructor Ta.Destroy;
begin
inherited;
end;
procedure Form1.Button1;
var a: Ta;
begin
a := Ta.Create;
a.Free;
if a = nil then
button1.Caption := 'is assigned'
else
button1.caption := 'is not assigned';
end;
Мой вопрос, почему после освобождения объекта не nil
и как я буду делать a
быть nil
после деструктора без использования a := nil
?
Освобождение объекта не устанавливает его в ноль. use FreeAndNil (a) – kobik
И вы не можете сделать это от деструктора? – user558126
Нет, вы не можете. – kobik