Вниз
Скачать: CL | DM;

вот такой вот вопрос   Найти похожие ветки 

 
Palladin ©   (2002-11-30 23:22) [0]

освобождается ли класс переданный параметром процедуре...
для ясности напишу две вещи

Описание:
TSimplyClass=class
private
m_Memo:TMemo;
public
constructor Create(Memo:TMemo);
destructor Destroy;override;
property PrMemo:TMemo read m_Memo;
end;

constructor TSimplyClass.Create;
begin
m_Memo:=Memo;
m_Memo.Lines.Add("Created");
end;

destructor TSimplyClass.Destroy;
begin
m_Memo.Lines.Add("Destroyed");
end;

и вот такая вещь первая:

procedure MyDestroy(var aClass:TSimplyClass);
begin
aClass.free;
end;


эксперимент:
sc:=TSimplyClass.Create(Memo1);
MyDestroy(sc);
sc.PrMemo.Lines.Add("ква ква");


1. Освободится или нет?
2. Должна ли переменная класса в nil устанавливатся при осбождении? Судя по всему не устанавливается так так "ква ква" благополучно добавилось в мемо...

и вторая вещь: если так
передаем не ссылку на ссылку :) а саму ссылку... хотя не знаю... может и в первом случае тоже сам класс передается...

procedure MyDestroy(aClass:TObject); begin
aClass.free;
end;


и в этом случае та же самая ситуация что и в первом... "ква ква" прекрасно влезает в мемо
разъясните механизм плиз... :(


 
TTCustomDelphiMaster ©   (2002-11-30 23:51) [1]

1. Освободится или нет?

Освободится.

2. Должна ли переменная класса в nil устанавливатся при осбождении?

Не должна. Если нужно устанавливайте сами.

разъясните механизм плиз

После освобождения объекта, память занимаемая им содержит ту же информацию что и при жизни объекта, пока не будет занята под что то другое. При этом ничто не мешает программе работать так, как будто объект не был удален (жизнь после смерти :)


 
Palladin ©   (2002-11-30 23:55) [2]

:)
круто :)
все мы там будем... хорошо если не затрут :)
спасибо...



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
3-36047
oleg_er
2002-11-25 15:33
2002.12.12
ADO запрос из нескольких директорий


4-36454
stel
2002-10-21 07:53
2002.12.12
Как переключить раскладку клавиатуры?


14-36331
F1
2002-11-20 16:16
2002.12.12
Ну очень сложный вопрос!!!


3-36074
vaneks
2002-11-24 14:10
2002.12.12
Структура базы данных


3-36013
Youri
2002-11-22 15:54
2002.12.12
XSQLDA index out of range!




   Наверх