![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибки при освобождении.
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?