Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.12;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.021 c
1-36132
SergeyDove
2002-12-03 13:55
2002.12.12
Не запускается проект


4-36484
firefox
2002-10-31 15:44
2002.12.12
Программа невидимка....


3-36030
Sergey_Elf
2002-11-25 09:13
2002.12.12
добавить программно поле в таблицу dbf Заманался уже!!!!


1-36213
Костик
2002-12-01 16:33
2002.12.12
Удалить пустую строку в TMemo


14-36355
Anatoly Podgoretsky
2002-11-19 07:36
2002.12.12
Именинники 19 ноября