Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.28;
Скачать: CL | DM;

Вниз

Destroy or Free   Найти похожие ветки 

 
novice_man ©   (2004-11-11 08:29) [0]

Что выбрать Destroy или Free (список TList) и в чем разница.


 
Семен Сорокин ©   (2004-11-11 08:36) [1]

Выбирай Free, он делает проверку на существование экземпляра класса:

procedure TObject.Free;
begin
 if Self <> nil then
   Destroy;
end;


 
begin...end ©   (2004-11-11 08:39) [2]

novice_man ©   (11.11.04 8:29)

Отрывок из справки по TObject.Destroy:

Do not call Destroy directly. Call Free instead. Free verifies that the object reference is not nil before calling Destroy.

Unlike Destroy, Free provides a safeguard when destroying objects that are nil.

А вот и код из System.pas:

destructor TObject.Destroy;
begin
end;

procedure TObject.Free;
begin
 if Self <> nil then
   Destroy;
end.

В других классах (потомках TObject) в деструкторе Destroy могут производиться операции по "подготовке к уничтожению" - освобождение ресурсов, и т.д. Например, вод код деструктора TList.Destroy из Classes.pas:

destructor TList.Destroy;
begin
 Clear;
end.


 
novice_man ©   (2004-11-11 08:49) [3]

Спасибо за ответ. (Да, нужно читать справку к программе)


 
SergP ©   (2004-11-11 09:08) [4]


> он делает проверку на существование экземпляра класса:


ИМХО проверка или указатель не равен Nil еще не значит что это проверка на существование экземпляра класса...


 
Семен Сорокин ©   (2004-11-11 09:13) [5]


> SergP ©   (11.11.04 09:08) [4]

Началось, а как Вы обычно проверяете битая ссылка или нет, у Вас есть код?
Имхо, при правильном подходе это именно и есть проверка на существование экземпляра.



Страницы: 1 вся ветка

Текущий архив: 2004.11.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
14-1100149608
Dmitriy O.
2004-11-11 08:06
2004.11.28
Ясир Арафат умер. Официально


3-1098884695
gorvic
2004-10-27 17:44
2004.11.28
Добавление в Query в run-time поля типа fkCalculated


3-1098737306
Sulimxar
2004-10-26 00:48
2004.11.28
DevExpress для Delphi 7


6-1095258006
AlexV
2004-09-15 18:20
2004.11.28
Как проверить, доступен ли комп в локальной сети?


4-1097840477
AngelFire
2004-10-15 15:41
2004.11.28
Получение макс.длины учетного имени