|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Access Violation на ровном месте
Всем привет.
Столкнулся с непонятной проблемой, перерыл весь код, но причин её возникновения не вижу. Более того, несколько дней назад программа работала стабильно. Проблема в том, что при попытке обратиться к Screen (чтобы отрегулировать размеры формы) ни с того ни с сего выскакивает сообщение "... raised exception class EAccessViolation with message 'Access violation at address 00000000. Read of address 00000000'". То есть происходит обращение к объекту, который ещё не создан. Но как это может касаться стандартного Screen, который создается автоматически?.. Компилируется без ошибок, а трассировка просто доходит до строчки Код:
Width:=Screen.Width; Ne timeas obscurum. |
#2
|
||||
|
||||
как обычно ошибка в 13 строке скорее всего. чтобы проверить компьютер и Delphi сделай тоже самое на новом проекте.
Код:
procedure TForm1.FormCreate(Sender: TObject); begin Width:=Screen.Width; end; Пишу программы за еду. __________________ |
#3
|
||||
|
||||
Всё-таки дело не в Delphi и не в компьютере, так как сохранённый на флешке бэк-ап работает. Значит, буду копаться далее, искать в свежедописанном коде
Кстати, запуск exe-шника даёт сообщение с чудным заголовком "Format '%s' invalid or incompatible with argument" UPD. А размеры формы я выставляю в FormShow, так как по ходу выполнения может изменяться разрешение экрана. Короче, мистика какая-то :3 Ne timeas obscurum. Последний раз редактировалось Lothlorien, 14.04.2016 в 18:48. |
#4
|
||||
|
||||
:D
Разобрался, сижу и смеюсь
Причина вылета была не в обращениях к объектам, а в том, что параллельно в это время программа считывает настройки с файла. Файл этот я сначала прописал через IniFiles, потом решил сделать бинарным. Код поменял, а сам файл перезаписать забыл. Программа спокойно запустилась после его удаления, выставив настройки по умолчанию. Капец, а я-то уже всё перерыл в коде xD Ne timeas obscurum. |