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

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

Как корректно уничтожить из дестрактора компоненты ScrollBar


Страницы:   1 2

Aleksandr ©   (2001-12-21 14:33:00) 

Компонента имеет ScrollBar, создающийся при ее создании:
constructor TWayTree.Create(AOwner : TComponent);
begin
Inherited;
FScrollBar:=TScrollBar.Create(AOwner);
FScrollBar.Parent:=Parent;
FScrollBar.OnScroll:=FWayTreeScroll;
...
end;
Parent ScrollBar"у я назначаю, чтобы он не мигал и не дергался при перерисовке компоненты (и вообще ей жить не мешал). То есть фактически он не принадлежит компоненте, просто скроллирует ее.
Все прекрасно, но при вызове дестрактора компоненты в этом месте:
if Assigned(FScrollBar) then
FScrollBar.Free
появляется Access Violation at 00000000...
Чего я не так делаю?


Alx2   (2001-12-21 14:46:00) [21]

Вдогонку: в конструктор скроллу попробую передавать себя (т.е TWay).


Alx2   (2001-12-21 14:44:00) [22]

Вот-вот...
Тогда просто его не грохай. Это сделает Owner, когда помирать будет (или Parent? - не помню. Но ведь позаботился кто-то уже?).


Aleksandr   (2001-12-21 14:41:00) [23]

Не знаю... Только если этот самый Parent раньше не вышибает СкроллБар, а уж потом компоненту... Только как проверить, если Assigned всего лишь сверяет с nil?


Alx2   (2001-12-21 14:39:00) [24]

Может, его кто-то уже перед этим прибил?


Страницы:   1 2

Наверх

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