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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.04.2016, 18:17
Аватар для Lothlorien
Lothlorien Lothlorien вне форума
Новичок
 
Регистрация: 06.04.2011
Адрес: Солнечная система
Сообщения: 69
Версия Delphi: 7.0
Репутация: 12
По умолчанию Access Violation на ровном месте

Всем привет.

Столкнулся с непонятной проблемой, перерыл весь код, но причин её возникновения не вижу. Более того, несколько дней назад программа работала стабильно.

Проблема в том, что при попытке обратиться к Screen (чтобы отрегулировать размеры формы) ни с того ни с сего выскакивает сообщение "... raised exception class EAccessViolation with message 'Access violation at address 00000000. Read of address 00000000'". То есть происходит обращение к объекту, который ещё не создан. Но как это может касаться стандартного Screen, который создается автоматически?..

Компилируется без ошибок, а трассировка просто доходит до строчки
Код:
Width:=Screen.Width;
и замирает. Может, дело в компьютере или Delphi устала?..
__________________
Ne timeas obscurum.
Ответить с цитированием
  #2  
Старый 14.04.2016, 18:40
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Смех

как обычно ошибка в 13 строке скорее всего. чтобы проверить компьютер и Delphi сделай тоже самое на новом проекте.
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Width:=Screen.Width;
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 14.04.2016, 18:46
Аватар для Lothlorien
Lothlorien Lothlorien вне форума
Новичок
 
Регистрация: 06.04.2011
Адрес: Солнечная система
Сообщения: 69
Версия Delphi: 7.0
Репутация: 12
По умолчанию

Всё-таки дело не в Delphi и не в компьютере, так как сохранённый на флешке бэк-ап работает. Значит, буду копаться далее, искать в свежедописанном коде

Кстати, запуск exe-шника даёт сообщение с чудным заголовком "Format '%s' invalid or incompatible with argument"

UPD. А размеры формы я выставляю в FormShow, так как по ходу выполнения может изменяться разрешение экрана. Короче, мистика какая-то :3
__________________
Ne timeas obscurum.

Последний раз редактировалось Lothlorien, 14.04.2016 в 18:48.
Ответить с цитированием
  #4  
Старый 17.04.2016, 03:10
Аватар для Lothlorien
Lothlorien Lothlorien вне форума
Новичок
 
Регистрация: 06.04.2011
Адрес: Солнечная система
Сообщения: 69
Версия Delphi: 7.0
Репутация: 12
По умолчанию :D

Разобрался, сижу и смеюсь
Причина вылета была не в обращениях к объектам, а в том, что параллельно в это время программа считывает настройки с файла. Файл этот я сначала прописал через IniFiles, потом решил сделать бинарным. Код поменял, а сам файл перезаписать забыл.
Программа спокойно запустилась после его удаления, выставив настройки по умолчанию. Капец, а я-то уже всё перерыл в коде xD
__________________
Ne timeas obscurum.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter