Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.08.2016, 20:26
plyton plyton вне форума
Прохожий
 
Регистрация: 28.04.2015
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Access violation at address после добавления MainMenu на форму

Народ, помогите, пожалуйста. Несколько месяцев работаю над программой, как мало-мальски чего-нибудь исправлю - обзываю новой версией и запускаю на машине, которая постоянно работает. Там оно работает по нескольку дней - я бы заметил, если бы что-то подобное случалось раньше. До сей поры всё было в порядке, а тут решил я MainMenu добавить на форму - так стоит добавить в него хоть один элемент, как при закрытии программы выдаёт "Access violation at address 0047B4AD in module 'xxx.exe'. Read of address 00000000". Есть обработчик FormClose, пробовал его убрать - ситуация не меняется. Call Stack пишет следующее:

:7787b727 KERNELBASE.RaiseException + 0x58
:004064a0 NotifyNonDelphiException + $1C
:77ed878b ; ntdll.dll
:77e9010f ntdll.KiUserExceptionDispatcher + 0xf
:0047b5a5 TControl.SetLeft + $19
:0047b12b TControl.Resize + $1B
:0047d8cf TControl.WndProc + $2D7
:00482195 TWinControl.WndProc + $56D
:004ced1d TCustomForm.WndProc + $599
:00481833 TWinControl.MainWndProc + $2F
:0044dcb2 StdWndProc + $16
:77326238 ; C:\Windows\syswow64\USER32.dll
:773268ea ; C:\Windows\syswow64\USER32.dll
:77328428 ; C:\Windows\syswow64\USER32.dll
:77326e4c ; C:\Windows\syswow64\USER32.dll
:74930b64 ; C:\Windows\SysWOW64\uxtheme.dll
:74930b96 ; C:\Windows\SysWOW64\uxtheme.dll
:7732721c USER32.GetPropW + 0x53
:77326238 ; C:\Windows\syswow64\USER32.dll
:773268ea ; C:\Windows\syswow64\USER32.dll
:77330ab0 ; C:\Windows\syswow64\USER32.dll
:77330ad6 USER32.CallWindowProcW + 0x1b
:00482295 TWinControl.DefaultHandler + $DD

Все проблемы исчезают, как только удалю MainMenu или очищу параметр Menu в свойствах формы. У меня 64-битная Win7, код пишу в 15-м Embarcadero RAD Studio XE. Чего ему надо?
Ответить с цитированием
  #2  
Старый 06.10.2016, 15:26
Аватар для Lothlorien
Lothlorien Lothlorien вне форума
Новичок
 
Регистрация: 06.04.2011
Адрес: Солнечная система
Сообщения: 69
Версия Delphi: 7.0
Репутация: 12
По умолчанию

У меня была похожая непонятная ошибка, когда после добавления меню начинались вылеты с Access Violation. Оказалось, что собака была зарыта в именах классов: форма у меня называлась MainMenu, соответственно, ее класс автоматически прописался как TMainMenu. А TMainMenu - это имя класса меню, и при освобождении памяти программа "терялась", "не понимая", кому какой класс принадлежит.
Я просто переименовал форму (и ее класс), проблема решилась...
__________________
Ne timeas obscurum.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter