Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

?????????????????? Непонятки

272
26 октября 2004 года
vladsoft
512 / / 20.08.2000
Всем привет!
Вопрос следующий: написал свой компонет в runtime режиме его оттестировал,
всо нормально все работает, но как только я сделал bpl и начал работать в
designtime режиме то тут всякие странностьи поползли:
стоит мне к примеру с помощью клавиши del удалить свой компонент, то
вылетают всякие ошибки, типа не могу прочитать адрес памяти и все такое,
в своем компоненте я динамически создаю другие контролы, которые удаляю в
деструкторе! парент у низ мой компонент
в чем проблема почему позут ошибки??????
310
27 октября 2004 года
fellow
853 / / 17.03.2003
Напустил на эту задачу Telepat.exe, а он говорит "Can't determine Key Information" :D

Код в студию, что-ли :)
246
27 октября 2004 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by vladsoft
Всем привет!
Вопрос следующий: написал свой компонет в runtime режиме его оттестировал,
всо нормально все работает, но как только я сделал bpl и начал работать в
designtime режиме то тут всякие странностьи поползли:
стоит мне к примеру с помощью клавиши del удалить свой компонент, то
вылетают всякие ошибки, типа не могу прочитать адрес памяти и все такое,
в своем компоненте я динамически создаю другие контролы, которые удаляю в
деструкторе! парент у низ мой компонент
в чем проблема почему позут ошибки??????


Если передал в конструктор динамически создаваемого контролла Owner(this), то в деструкторе его удалять не надо - это сделает владелец.
__fastcall TContainerPanel::TContainerPanel(Classes::TComponent* AOwner):TPanel(AOwner){
lv = new TListView(this);//владение объектом
lv->Parent = this; //владение окном
}

__fastcall TContainerPanel::~TContainerPanel()
{
//вначале его удаляет TContainerPanel...
delete lv;//а теперь Ты пробуешь, не надо...
}

10
27 октября 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by vladsoft
в designtime режиме то тут всякие странностьи поползли:
стоит мне к примеру с помощью клавиши del удалить свой компонент, то вылетают всякие ошибки, типа не могу прочитать адрес памяти и все такое, в своем компоненте я динамически создаю другие контролы, которые удаляю в деструкторе!


Не знаю, применимо ли это к твоей задаче, но есть железное правило: если компонент прямо или косвенно содержит ссылки на другие компоненты, которые он не создавал и не должен освобождать, обязательно надо перекрыть метод Notification, чтобы отработать случай освобождения компонента по событию извне.

272
28 октября 2004 года
vladsoft
512 / / 20.08.2000
Цитата:
Originally posted by smartsoft

Не знаю, применимо ли это к твоей задаче, но есть железное правило: если компонент прямо или косвенно содержит ссылки на другие компоненты, которые он не создавал и не должен освобождать, обязательно надо перекрыть метод Notification, чтобы отработать случай освобождения компонента по событию извне.


Про Notification это ты верно заметил!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог