Записи и конструкторы

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
wwswowsogon
постоялец
Сообщения: 157
Зарегистрирован: 23.12.2008 19:41:37

Записи и конструкторы

Сообщение wwswowsogon »

Всем доброго времни суток!

Пытаюсь установить GLScene на Lazarus 1.014.

Вылезают косяки.

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

type

  PGLPoint2D = ^TGLPoint2D;
  TGLPoint2D = record
    X: Single;
    Y: Single;
    public
      constructor Create(X, Y : Single);
      procedure SetPosition(const X, Y : Single);
      function Add(const APoint2D: TGLPoint2D): TGLPoint2D;
      function Length: Single; //distance to origin
      function Distance(const APoint2D : TGLPoint2D) : Single;
      procedure Offset(const ADeltaX, ADeltaY : Single);
  end; 


- идёт ругань на constructor: C:\lazarus\components\GLScene\Source\GLTypes.pas(35,7) Error: Constructors aren't allowed in records or record helpers

Как я понял, конструкторы нельзя использовать в записях в FPC, а в Delphi - можно. {$MODE DELPHI} не помогает.

Как можно обойти эту проблему?
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Максим »

Обойти проблему легко: взять актуальную версию GLScene. В текущей версии файла GLTypes.pas конструкторов нет.
sign
энтузиаст
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Сообщение sign »

Или написать вместо record - object
wwswowsogon
постоялец
Сообщения: 157
Зарегистрирован: 23.12.2008 19:41:37

Сообщение wwswowsogon »

Спасибо! Действительно сильно помогло, всё в основном установилось. Можно писать код :)
Ответить