published-свойства

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

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

Ответить
vunder
незнакомец
Сообщения: 6
Зарегистрирован: 10.01.2007 12:17:57

published-свойства

Сообщение vunder »

Проект, который прекрасно собирается в Delphi? никак не хочет компилица в FreePascal (Lazarus)
Ошибка следующая
Error: Only class which are compiled in $M+ mode can be published

Кусок исходника такой:

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

  tRtpTable = class(tTransporter)
    QDetails: tQDetails;//здесь ошибка
  private
    fCapacity: Integer;
    fClientName: string;
    fFields: tFieldIndexes;
    fQFields: tFieldIndexes;
    fSortField: tFieldIndex;
    fUpdateField: tFieldIndex;

Во всех модулях ставил {$MODE Delphi}. Пытался ставить {$M+} именно для этого класса - не помогает. В чем проблема?
Использую Lazarus 0.9.24 beta, FPC 2.2.0
Аватара пользователя
B4rr4cuda
энтузиаст
Сообщения: 693
Зарегистрирован: 28.12.2007 06:48:35

Сообщение B4rr4cuda »

А не пробовал

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

{$mode delphi} {$M+} 
в начале модуля?
ЗЫ фраза
vunder писал(а):Пытался ставить {$M+} именно для этого класса

мне не понятна...
vunder
незнакомец
Сообщения: 6
Зарегистрирован: 10.01.2007 12:17:57

Сообщение vunder »

Поставил в начале всех подключаемых модулей {$MODE DELPHI}, все равно таже ошибка
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

класс tQDetails собран без не так как надо. Либо перенеси его в приватную или публик секцию или в начале модуля где объявлен класс tQDetails вставь дерективу {$M+}
vunder
незнакомец
Сообщения: 6
Зарегистрирован: 10.01.2007 12:17:57

Сообщение vunder »

alexs писал(а):класс tQDetails собран без не так как надо. Либо перенеси его в приватную или публик секцию или в начале модуля где объявлен класс tQDetails вставь дерективу {$M+}

Спасибо, помогло.
Кстати, интересная штука получается: класс tQDetails является наследников от TPersistent, но описывался так:

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

...
tQDetails = class;
...
tRtpTable = class(tTransporter)
    QDetails: tQDetails;
  private
    fCapacity: Integer;
    fClientName: string;
...
tQDetails = class(tTransporter)
...
Ответить