Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удаление интерфейсных объектов [D6, Win2k]


Страницы:   1 2

masik ©   (2002-04-22 17:21:00) 

господа, есть набор интерфейсов и классов, которые их реализует. Естественно возникает вопрос корректного удаления этих классов. Как я понимаю Дельфя удаляет их раньше чем я. Как это можно отследить.


masik   (2002-04-22 17:48:00) [21]

Код откровенно огроменный и многомодульный,но попробую объяснить.
объекты - VCL компоненты, при создании объекта его ссылка заносится в List
Result:=TControlClass(FindClass(ControlClass)).Create(Self);
FControls.Add(Result);
при очистке списка и удалении компонентов все нормально
for i:=FControls.Count-1 downto 0 do begin
TObject(FControls.Items[i]).Free;
FControls.Delete(i);
end;
а при завершении проекта EXCEPTION.

И еще попутный вопросик. Я добавляю к списку интерфейсов еще один, в котором описывается только один метод, и ентот объект вообще не дается нормально удаляться. Как я понимаю когда нет явной ссылки на него и компонент невидим дельфи удаляет его без пердупреждения?


kull   (2002-04-22 17:32:00) [22]

Да и все зависит, конечно от кода.
Естественно неплохо-бы пример или конкретней о том чего тебе надо.


kull   (2002-04-22 17:31:00) [23]

Delphi удаляет ссылку на интерфейс когда счетчик ссылок на объект становится равным 0.
А уменьшает счетчик когда переменная содержащая ссылку на интерфейс выходит из блока видимости.


Cobalt   (2002-04-22 17:30:00) [24]

А из чего видно, что
> Дельфя удаляет их раньше чем я.?
Есть конкретный пример?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо