Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Разрушение компонента


Автор: Illusion Dolphin 27.6.2003, 20:41
Есть такой код:

var c:Tbutton;
begin

c:=Tbutton.create(form1);
o.parent:=form1;
c.Free;
if c<>nil then showmessage('!!!');

Выдаётся сообжениие "!!!" sad.gif. Что бы это значило? Компонент разрушен или нет? Как правильно разрушить компонент и узнать, что он разрушен? Ели то же самое делать с компонентом, созданным на форме, то при там после FREE объект равен nul... Так в чём же проблема? Чем отличается компонент, созданный в рунтайм?

Автор: acp 27.6.2003, 21:00

FreeAndNil() smile.gif

Автор: <Spawn> 27.6.2003, 21:44
Потому что после разрушения данных, на которые ссылалась переменная, она не устанавливается в состтояние nil и соответственно, тебе надо либо самому указать на nil, либо воспользоваться FreeAndNil() как уже сказал acp.

Автор: Illusion Dolphin 30.6.2003, 07:47
FreeAndNil() работает на ура но всё же вторая часть вопроса остаётся открытой: чем отличается компонент, созданный в рунтайм от компонента, созданного формой, т.к. с последним достаточно просто Free?confused.gif?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)