Вниз
Скачать: CL | DM;

Access Violation в работе TStringList   Найти похожие ветки 

← →
Сергей Резников ©   (2003-12-19 18:17) [0]

При создании доч. формы: MainForm.ChildList.Add(IntToStr(Self.Handle));
При разр.: MainForm.ChildList.Delete(MainForm.ChildList.IndexOf(IntToStr(Self.Handle)));
После закрытия последней формы и открытия новых форм выскакивает (на первой форме) AV. ChildList есесно создан при ссозд форме.


← →
Тимохов ©   (2003-12-19 18:19) [1]

Все-таки кода бы побольше.
Откуда ты эти команды вызываешь?


← →
Сергей Резников ©   (2003-12-19 18:27) [2]

Child.Oncreate: MainForm.ChildList.Add(IntToStr(Self.Handle));
Child.Ondestroy: MainForm.ChildList.Delete(MainForm.ChildList.IndexOf(IntToStr(Self.Handle)));

MainForm.Oncreate: ChildList := TStringList.Create.
ChildList объявлен в Public`е формы.


← →
Sandman25 ©   (2003-12-19 18:38) [3]

Если AV на строке MainForm.ChildList.Add(IntToStr(Self.Handle)),
причем вызывается это в TChildForm.OnCreate,
а MainForm.ChildList все еще жив, то надо опять перезагрузить компьютер :)


← →
Тимохов ©   (2003-12-19 18:39) [4]

Вообще говоря, мистика. Вроде все верно.


← →
Сергей Резников ©   (2003-12-19 18:40) [5]

Всё ажур пока не закроешь посл. форму и не начнёшь открывать по новой, тогда первая форма и рожает исключение !!!


← →
Sandman25 ©   (2003-12-19 18:44) [6]

[5] Сергей Резников © (19.12.03 18:40)

На какой строке? Под отладчиком проходили?


← →
Сергей Резников ©   (2003-12-19 18:48) [7]


> Sandman25 © (19.12.03 18:44) [6]

MainForm.ChildList.Add(IntToStr(Self.Handle));
после вышесказанного.


← →
Тимохов ©   (2003-12-19 19:17) [8]

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


← →
Сергей Резников ©   (2003-12-20 07:52) [9]

Я выяснил, что AV происходит вообще при созд. доч. окна после закрытия всех прежних доч. окон ! Это совсем непонятно !!!


← →
Владислав ©   (2003-12-20 11:05) [10]

Нужно больше кода.


← →
Владислав ©   (2003-12-20 11:08) [11]

И кстати, в чем потайной смысл использования этого стринглиста?


← →
Digitman ©   (2003-12-20 11:51) [12]

тайный смыл стринглиста гораздо круче нежели банальный смысл списка MDIChildren[] )


← →
Юрий Зотов ©   (2003-12-20 12:05) [13]

> Сергей Резников © (20.12.03 07:52) [9]
> Я выяснил, что AV происходит вообще при созд. доч. окна после
> закрытия всех прежних доч. окон ! Это совсем непонятно !!!

Вероятнее всего, где-то идет обращение по битой ссылке (а битой она становится после закрытия последней дочерней формы). Похоже, для ссылки на дочернюю форму Вы где-то используете глобальную переменную (или глобальный список, массив...) при Action=caFree в OnClose дочерней формы.

IMHO, проход отладчиком даст гораздо больше пользы, чем 10 форумов, вместе взятых.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.014 c
14-12125
Германн
2003-12-13 03:44
2004.01.05
Что такое файл <имя_проекта>.drc ?


1-11898
Anton.
2003-12-17 15:37
2004.01.05
Разбор текста


7-12187
amal
2003-10-25 13:44
2004.01.05
как заставить модем набирать в импульсном режиме из delphi


14-12096
ИМХО
2003-12-14 11:48
2004.01.05
Языки программирования и синтаксис


7-12173
Dima_dvp
2003-10-23 03:38
2004.01.05
Global HOOK без DLL.. Это как? Или вообще ни хук?




   Наверх