Задать вопрос
mergenich
@mergenich

Почему access violation в конструкторе?

Создал такой класс:
type
  Painter = class
  public
    constructor Create();
  private
    sprite: TBitmap;
  end;

constructor Painter.Create();
begin
  sprite := TBitmap.Create;
end;

Запускаю - ошибка:
First chance exception at $005D94B0. Exception class $C0000005 with message 'access violation at 0x005d94b0: write of address 0x00000004'. Process Plan2D.exe (1248)


Решение:
Оказалось, объект я тоже назвал painter, когда переименовал прошло. Получается в дельфи объект класса нельзя назвать именем класса.
  • Вопрос задан
  • 422 просмотра
Подписаться 1 Оценить 2 комментария
Решение пользователя kalapanga К ответам на вопрос (2)
@kalapanga
А почему Вы решили, что ошибка в этом конструкторе? Конкретно этот десяток строчек никаких ошибок не вызывает, объект вполне себе создаётся. Вот деструктора ему не хватает, спрайта никто не освобождает.
Ответ написан