Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема [Delphi, Windows]


незнаускас ©   (2006-01-10 05:45:00) 

При написании игры на DELPHI X ,у меня возникла одна проблема, а именно когда я создав новый клас, добавил в On Create Form процедуру Create етого класа то при компиляции я получил сообщение:
"Project Project.exe raised exception class EDivByZero
            with message 'Division by zero'.
      Process stopped. Use Step or Run to continue."
Перепробывал всё ничего не помогает!


Google!   (2006-01-11 01:52:00) [1]

Удалено модератором


Google!   (2006-01-11 01:52:00) [2]

Удалено модератором


Google!   (2006-01-11 01:52:00) [3]

Удалено модератором


Cash   (2006-01-10 13:19:00) [4]

А нука давай, выкладывай текст конструктора врага!
Мне уж очень интересно, когда то была такая же ситуация,
решил я ее добавив одну строчку.


XProger   (2006-01-10 08:03:00) [5]

Внимательнее прочитай моё предыдущее сообщение.


незнаускас   (2006-01-10 07:33:00) [6]

Процедура создания стоит перед несколькими другими процедурами создания другихкласов.Вот:
procedure TForm1.FormCreate(Sender: TObject);
begin
  with Tmax.Create(Dxspriteengine1.Engine) do
begin
 Image := form1.dxImageList1.Items.Find('max');
 x:=300;
 y:=434;
 Width := Image.Width;
 Height := Image.Height;
end;
 with TScrollBackground.Create(DXSpriteEngine1.Engine) do
begin
   SetMapSize(1, 1);
   Image := DXImageList1.Items.Find('fon');
   Y := 0;
   Z := -11;
   Tile := true;;
end;
with Tvrag.Create(Dxspriteengine1.Engine) do
begi
 x:=300;
 y:=434;
end;

end;
Но непашет почемуто только она.А описание класа и процедур  ничем не оличаеться от остальных класов.


XProger   (2006-01-10 07:16:00) [7]

Ещё раз повторяю, об этом тебе не компилятор сообщает.

i := 0;
j := 100 div i;

Дебагер выдаст тебе точно такое же сообщение об ошибке... Ищи ошибку в конструкторе Tvrag и дочерних.

Есть другая версия, по которой, на момент создания Tvrag, Dxspriteengine1 не существует. Решается 2 способами - поместить код в onShow или вручную создавать Dxspriteengine1.


незнаускас   (2006-01-10 07:02:00) [8]

Причём процедура Create етого класа зоздаёт ошибку только когда находится
в On Create Form


незнаускас   (2006-01-10 06:41:00) [9]

Компилятор показывает на строку:
=>   with Tvrag.Create(Dxspriteengine1.Engine) do
      begin
      x:=300;
      y:=434;
      end;
Ну вроде всё правильно написал.


незнаускас   (2006-01-10 06:26:00) [10]

А подробней можеш расказать о сетуации в которой знаменатель ноль


XProger   (2006-01-10 05:53:00) [11]

Во-первых, компилятор никогда не выдаст тебе этой ошибки. Во-вторых, проверь в коде все деления на ситуацию, в которой знаменатель = 0.


Наверх

Титульная страница Поиск, карта сайта Написать письмо