Процедурные типы и делегаты

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

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

Процедурные типы и делегаты

Сообщение Mirage » 18.10.2007 12:53:51

FPC не совместим с Delphi по процедурным типам и делегатам (которые ссылки не на просто процедуру, а на метод)?

В Delphi пишу:
Код: Выделить всё
procedure MyClass.MyDelegate(a: Integer);
...
Delegate := MyDelegate


FPC ругается (в режиме objfpc), ему нужно так:
Код: Выделить всё
Delegate := @MyDelegate


Причем опция So помогает - после нее @ не обязателен, зато на все остальное ругаться начинает, т.к. видимо переводится в режим TP.

Без IFDEF'ов никак нельзя чтобы и в Delphi и в FPC компилировалось?
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Сообщение Brainenjii » 18.10.2007 12:58:40

Хм, мне {$mode delphi} помогло избивится от @ и ошибок, вроде, не возникало особо...
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение alexs » 18.10.2007 13:30:45

Mirage
это общеизвестная фича
и кстати команда fpc поступила более логично здесь что чётко отделила вызов метода как функции с присвоением значения функцииперменной и взятием ареса метода с последующем занесением его в переменную.
мне синтаксис FPC нравится больше.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение debi12345 » 18.10.2007 13:40:55

Чтоб не париться,под дельфями или fPC собирать :


Код: Выделить всё
Delegate := {$ifdef fpc}@{$endif}MyDelegate;
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Mirage » 18.10.2007 14:20:11

Ну я так и делаю. Но мне не нравятся ифдефы на пустом месте.
Насчет -Mdelphi - видимо, я попробую его использовать, но пока че-то ошибок дофига. -Mobjfpc как-то более совместим.

А вообще мне синтаксис FPC тоже больше нравится - как обычно перекомпиляция проекта с помощью FPC выявила немало потенциальных проблем.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Сообщение Mirage » 19.10.2007 09:39:39

Мда, скомпилировал таки проект (с -Mdelphi), результаты не очень.
Без оптимизаций все ОЧЕНЬ тормозит, с L1 оптимизациями тормозов нет, но есть глюки. С L2 программа вообще не запускается - сразу падает.
Куда копать не совсем понятно.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru