Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.15;
Скачать: CL | DM;

Вниз

Вот такая ошибка начала вываливаться при переходе   Найти похожие ветки 

 
Ega23 ©   (2007-02-20 09:28) [0]

с Delphi5 на Delphi7: OnCreate главной формы по некоему условию
if not (biMaximize in BorderIcons) then BorderIcons := BorderIcons + [biMaximize];
На этой строчке вываливается AV at address  ...  in module ntdll.dll/ Write of address ....

Вот что может вызвать обвал в ntdll такая, казалось бы, безобидная строка????


 
Rouse_ ©   (2007-02-20 10:12) [1]

OFF: А зачем тебе тут условие? Это же SET...
Include(BorderIcons, biMaximize);
А вообще ничего криминального в коде нет :)
Попробуй на пустой проекте повторить.


 
Ega23 ©   (2007-02-20 10:39) [2]


> OFF: А зачем тебе тут условие? Это же SET...
> Include(BorderIcons, biMaximize);


Да это древний проект, я ещё тогда совсем тупо писал...
Я тут в дебри VCL залез, там RecreateWnd вызывается, на нём и сыпется.
Боюсь я сейчас даже и не скажу, что конкретно на загрузке происходит (там только у главной формы >15000 строк кода), а в проект не залезал уже года 3.
В общем, хотелось бы хотя бы приблизительную оценку об ошибке получить - чего там в ntdll может не нравится? Тогда хоть подробнее сказать смогу....

З.Ы. перед финальной сборкой галку Use Debug DCUs надо отключать?


 
Правильный Вася   (2007-02-20 10:48) [3]


> там RecreateWnd вызывается, на нём и сыпется.

вот-вот
зачем тебе эта кнопка понадобилась в динамике?
зашей ее сразу в дизайнере


 
Ega23 ©   (2007-02-20 10:53) [4]

Так я-ж говорю, эта штука должна добавляться по условию. Которое вычисляется непосредственно перед созданием гл.формы.


 
Правильный Вася   (2007-02-20 11:10) [5]

ради интереса попробуй наоборот - по условию изымать


 
Ega23 ©   (2007-02-20 11:18) [6]


> ради интереса попробуй наоборот - по условию изымать
>


Попробую, но сильной разницы не вижу - всё равно в SetBorderIcons попаду, а там - на RecreateWnd....  :)


 
ЮЮ ©   (2007-02-20 11:27) [7]

А если без условий и в самое начало OnCreate, пока твой код не нанес форме ощутимых повреждений?
Форма действительно создается автоматом, без лишних телодвижений в dpr?


 
Ega23 ©   (2007-02-20 11:31) [8]


> А если без условий и в самое начало OnCreate, пока твой
> код не нанес форме ощутимых повреждений?


Всё то же самое...  :(


> Форма действительно создается автоматом, без лишних телодвижений
> в dpr?


Сначала DataModule создаётся, там, кстати, и условие вычисляется. Потом - главная форма.


 
Rouse_ ©   (2007-02-20 12:30) [9]

Вот так попробуй:
 SetWindowLong(Handle, GWL_STYLE,
   GetWindowLong(Handle, GWL_STYLE) or WS_MAXIMIZEBOX);
 SendMessage(Handle, WM_NCPAINT, 0, 0);


 
Ega23 ©   (2007-02-20 13:20) [10]


> Rouse_ ©   (20.02.07 12:30) [9]


Спасибо, возьму на заметку. Сейчас просто руки не дойдут - надо танки резко добавлять...  :)



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

Текущий архив: 2007.04.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.055 c
3-1169558058
tytus
2007-01-23 16:14
2007.04.15
Подключение к Oracle 10g в библиотеке


15-1174581028
Empleado
2007-03-22 19:30
2007.04.15
Помнится, тут уже было несколько соревнований...


15-1174666572
Andy BitOff
2007-03-23 19:16
2007.04.15
Тут проскакивала ссылка...


2-1174758051
Sonic90
2007-03-24 20:40
2007.04.15
MessageDlg


1-1171965660
dzmitry[li]
2007-02-20 13:01
2007.04.15
Вернуть значения свойств формы в значение по умолчанию (design)