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

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

Ошибки при освобождении.


Страницы:   1 2

horse ©   (2007-06-22 11:21:00) 

Есть PageConrol каджый TabSheet которого является владельцем фрейма со своим набором компонентов и методов.
ПОСЛЕ вызова освобождения TabSheet из фрейма иногда (раз на 10-15 случаев) валимся по Access violetion. При вызове освобождения страница с фреймом с главной формы такого не происходит никогда.
Ошибка возникает не на .free - после, где непонятно.
Какие мысли?


horse   (2007-06-22 11:47:00) [21]


> Ошибка возникает тогда, когда очередь доходит до обработки
> сообщения, посланного уже несуществующему компоненту. Стоит
> уже заняться обдумыванием структуры программы.
>

Да, видимо буду искать в методах уничтожаемого фрейма.
Но почему с главной формы все проходит отлично?


horse   (2007-06-22 11:45:00) [22]

 with TTabSheet.Create(PageControl1) do
 begin
   PageControl := PageControl1;
   Caption := 'qwer';
   name := 'asdf';
   ...........
 end;

 with TframeSQLList.Create(_owner) do //(_owner - TabSheet)
 begin
   Parent := _owner;
   Align := alClient;
   ..................
 end;


Не могу понять куда try..except лепить.
TTabSheet(self.Owner).Free; - отрабатывает, валится на end;

Чтобы значило то, что с гавной формы
PageControl1.ActivePage.Free; - отрабатывает всегда ?


Плохиш   (2007-06-22 11:39:00) [23]


> Ошибка возникает не на .free - после, где непонятно.

Ошибка возникает тогда, когда очередь доходит до обработки сообщения, посланного уже несуществующему компоненту. Стоит уже заняться обдумыванием структуры программы.


ЮЮ   (2007-06-22 11:33:00) [24]

> Ошибка возникает не на .free - после, где непонятно.

Для этого тебе дается вся мощь отладчика.


Ega23   (2007-06-22 11:25:00) [25]

1. Используй try..except для логгирования исключений.
2. Как создаётся TTabSheet, как создаётся фрейм, каким образом фрейм привязывается к TabSheet?


Страницы:   1 2

Наверх

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