Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2013, 21:08   #1
Nokiller
Новичок
Джуниор
 
Регистрация: 10.12.2013
Сообщений: 2
По умолчанию Ошибка, после которой программа продолжает работать... Помогите найти/понять...

Решил попрактиковаться в динамическом программировании, создал уже часть кода (игра: Кто хочет стать миллионером?), но при пробной компиляции выдает ошибку:
Код:
First chance exception at $7767B727. Exception class EAccessViolation with message 'Access violation at address 00403A2E in module 'Project2.exe'. Read of address FFFFFFD0'. Process Project2.exe (3784)
Точно на этом участке кода:
Код:
tm:=Timage.Create(form1);
h50:=Timage.Create(form1);
hal:=Timage.Create(form1);
tm.Parent:=form1;
tm.Picture.LoadFromFile('Pic\takemoney.jpg');
tm.Top:=195;
h50.Parent:=form1;
h50.Picture.LoadFromFile('Pic\help50.jpg');
hal.Parent:=form1;
hal.Picture.LoadFromFile('Pic\helpall.jpg');
hal.Top:=65;
hf:=Timage.Create(form1);
hf.Parent:=form1;
hf.Picture.LoadFromFile('Pic\Phone.jpg');
hf.Top:=130;
Вот процедура полностью:
Код:
procedure Tform1.game(Sender:TObject);
begin
  nam:=pname.Text;
  kl:=pklas.Text;
  form1.Caption:='Кто хочет сать миллионером?';
  schet:=0;
  pklas.free;
  pname.free;
  lklas.free;
  lname.free;
  pp.free;
  pp:=nil;
  pklas:=nil;
  pname:=nil;
  lklas:=nil;
  lname:=nil;
  Lmoney(sender);
  Fon.free;
  fon:=nil;
  Fon:=Timage.create(form1);
Fon.Parent:=Form1;
Fon.Picture.LoadFromFile('Pic\gamefon.jpg');
Fon.Stretch:=true;
Fon.Align:=alClient;
pp:=Tpanel.Create(form1);
pp.Parent:=form1;
question:=Tlabel.Create(form1);
question.Parent:=pp;
ans1:=Tpanel.Create(form1);
ans1.Parent:=Form1;
ans2:=Tpanel.Create(form1);
ans2.Parent:=Form1;
ans3:=Tpanel.Create(form1);
ans3.Parent:=Form1;
ans4:=Tpanel.Create(form1);
ans4.Parent:=Form1;
question.Color:=clblack;
question.Font.Color:=clWhite;
question.Font.Height:=18;
question.WordWrap:=true;
pp.Left:=100*form1.Width div 640;
pp.Top:=292*form1.Height div 480;
pp.Width:=420*form1.Width div 640;
pp.Height:=40*form1.Height div 480;
question.Align:=alclient;
pp.Color:=clblack;
ans1.Left:=120*form1.Width div 640;
ans1.Top:=349*form1.Height div 480;
ans1.Width:=170*form1.Width div 640;
ans1.Height:=20*form1.Height div 480;
ans2.Left:=375*form1.Width div 640;
ans2.Top:=349*form1.Height div 480;
ans2.Width:=170*form1.Width div 640;
ans2.Height:=20*form1.Height div 480;
ans3.Left:=120*form1.Width div 640;
ans3.Top:=384*form1.Height div 480;
ans3.Width:=170*form1.Width div 640;
ans3.Height:=20*form1.Height div 480;
ans4.Left:=375*form1.Width div 640;
ans4.Top:=384*form1.Height div 480;
ans4.Width:=170*form1.Width div 640;
ans4.Height:=20*form1.Height div 480;
ans1.Color:=clblack;
ans2.Color:=clblack;
ans3.Color:=clblack;
ans4.color:=clblack;
ans1.Font.Color:=clwhite;
ans2.Font.Color:=clwhite;
ans3.Font.Color:=clwhite;
ans4.font.color:=clwhite;
ans1.Font.height:=22;
ans2.Font.height:=22;
ans3.Font.height:=22;
ans4.font.height:=22;
tm:=Timage.Create(form1);
h50:=Timage.Create(form1);
hal:=Timage.Create(form1);
tm.Parent:=form1;
tm.Picture.LoadFromFile('Pic\takemoney.jpg');
tm.Top:=195;
h50.Parent:=form1;
h50.Picture.LoadFromFile('Pic\help50.jpg');
hal.Parent:=form1;
hal.Picture.LoadFromFile('Pic\helpall.jpg');
hal.Top:=65;
hf:=Timage.Create(form1);
hf.Parent:=form1;
hf.Picture.LoadFromFile('Pic\Phone.jpg');
hf.Top:=130;
end;
до добавления первого кода, ошибок не возникало, но после, возникают, но программа продолжает работать, перерыл весь интернет ничего не нашёл...
Вложения
Тип файла: rar прог.rar (498.2 Кб, 8 просмотров)
Nokiller вне форума Ответить с цитированием
Старый 10.12.2013, 21:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Точно на этом участке кода:
Не факт. Трассировал по шагам?
Попробуй оберни твой подозрительный код в try-except и в нем пропиши отлов исключения с выводом ShowMessage чтоб точно убедиться что именно там проблема.
Если сработает - наводи курсор мышки на переменные в этом участке и смотри какая из них nil или имеет необычное значение.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.12.2013, 21:49   #3
Nokiller
Новичок
Джуниор
 
Регистрация: 10.12.2013
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Не факт. Трассировал по шагам?
Попробуй оберни твой подозрительный код в try-except и в нем пропиши отлов исключения с выводом ShowMessage чтоб точно убедиться что именно там проблема.
Если сработает - наводи курсор мышки на переменные в этом участке и смотри какая из них nil или имеет необычное значение.
Я уже с подобным сталкивался, Ошибка возникает, когда обращаюсь к элементу с параметром nil, но вот именно в этом примере я программу вдоль и поперёк перелопатил, хотя свои ошибки найти труднее чем чужие, но я точно знаю, именно на этом участке выводится ошибка, хоть и не фатальная: программа выводит ошибку и продолжает работать нормально...

Ошибку нашёл.
Если кому интересно: нужно путь к файлам указывать полностью... Ввел переменную dir(dir:=ExtractFilePath(Applicatio n.ExeName), которая задавалась с начальным значением, откуда была запущена программа...

Последний раз редактировалось Nokiller; 10.12.2013 в 22:13.
Nokiller вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ребят,программа правильно написана,только 1 ошибка ,не могу понять где. Anne Помощь студентам 3 09.01.2012 22:17
Cходящийся ряд (программа по идее должна работать но почему не работает понять не могу) в С++ Vultar Помощь студентам 3 17.12.2009 13:04
Помогите понять где ошибка !!! beliy13 Помощь студентам 2 12.12.2009 20:22
Помогите понять в чем ошибка (работа со строками) Edimus Общие вопросы C/C++ 1 22.11.2007 14:09