Страница 1 из 1

EAccessViolation

Добавлено: 25 ноя 2004, 22:44
Pepper
Приветствую всех!
Проблема вот в чем: хочу создать новый объект (для простенькой игрушки):

Код: Выделить всё

  TEnemy = class
    Level:  TLevel;
    Energy: TEnergy;
    Coords: TCoordinate;
    ................................
    Constructor Create(const PictureLevel: TPictureLevel; const EOwner:                                      TWinControl;  const NewEnemy: shortint);              
    .................................          
  end;
Потом описываю метод Create:

Код: Выделить всё

constructor TEnemy.Create(const PictureLevel: TPictureLevel; const EOwner: TWinControl; const NewEnemy: shortint);
begin

  randomize;
  Level := Random(3);      // Срабатывает исключительная ситуция  EAccessViolation

  Coords.x := Random(EOwner.Width); // Срабатывает исключительная ситуция  EAccessViolation
  Coords.y := 0;
  ......................................
Получается, что я обращаюсь к неверному адресу памяти, но я думал, что это обычно происходит с указателями... А когда я вместо, например, Level пишу локальную переменную, то все срабатывает.. Почему так происходит?

Добавлено: 26 ноя 2004, 13:49
Игорь Акопян
объявление TLevel в студию