Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];




Вниз

Когда правильно делать FreeAndNil, а когда просто Free? 


Макс Черных   (2002-04-04 01:04) [6]

>cypher
Да без проблем, вот две процедуры одного из моих
компонентов, что они делают, надеюсь, объяснять не надо.

destructor TCustomNSListView.Destroy;
begin
OnEdited := nil;
FreeAndNil(FDataLink);
inherited Destroy;
end;


Если мы напишем FDataLink.Free, то в нижеследующем
методе получим Access Violation в момент закрытия
приложения, так как FDataLink уже Free, но еще не nil

procedure TCustomNSListView.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if (Operation = opRemove) and (FDataLink <> nil) and (AComponent = NSExplorer)
then NSExplorer := nil;
end;




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];




Наверх







Память: 0.73 MB
Время: 0.023 c
14-57869          dima_                 2002-03-11 13:35  2002.04.18  
Подскажите как перенести текст из Тmemo в memo ячейку таблицы...


1-57823           Ученики СШ51          2002-04-06 09:41  2002.04.18  
Убрать из...


3-57636           koks                  2002-03-26 13:45  2002.04.18  
ADO -> Access 2000 ???? HEEEEEEEEELP !


1-57684           UDS                   2002-04-06 00:44  2002.04.18  
В Дельфи4 GIF игнорируется чтоли?


1-57738           ymin                  2002-04-05 11:56  2002.04.18  
Как в 1-й форме ввести строку, потом нажать на кнопку и во второй