Вопрос про процедурный тип

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

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

Re: Вопрос про процедурный тип

Сообщение скалогрыз » 25.12.2016 11:01:26

beria писал(а):но в у меня в дельфи моде сам синапс уже не перекомпилируется....

да ну нафик, весь Synapse прописан такой вот вещью:
Код: Выделить всё
{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}

Например
скалогрыз
долгожитель
 
Сообщения: 1630
Зарегистрирован: 03.09.2008 02:36:48

Re: Вопрос про процедурный тип

Сообщение beria » 25.12.2016 11:01:58

скалогрыз писал(а):ладно.
поменяй тогда объявление Monitor2 на такое:

Код: Выделить всё
procedure Monitor2(Sender: System.TObject; var Value: System.ansistring);



Sock.OnReadFilter := @Monitor2; - компилируется... :-)
Аватара пользователя
beria
постоялец
 
Сообщения: 103
Зарегистрирован: 29.09.2016 08:57:13

Re: Вопрос про процедурный тип

Сообщение скалогрыз » 25.12.2016 11:03:09

beria писал(а):Sock.OnReadFilter := @Monitor2; - компилируется...

{$objfpc} режим?

вобщем я тебя поздравляю.
Один из модулей, которые ты используешь в этом модуле, активно переопределяет AnsiString, как что-нить вроде:
Код: Выделить всё
type
  AnsiString = type RawByteString;

(народ же не любит кодировки строк). По-этому тебе нужно явно указывать что ты хочешь AnsiString из модуля System (тот же, который используется синапсом).
Нет, некоторые умники могут и TObject переопределить... но я бы от такой библиотеки бы отказывался :D
Последний раз редактировалось скалогрыз 25.12.2016 11:09:09, всего редактировалось 2 раз(а).
скалогрыз
долгожитель
 
Сообщения: 1630
Зарегистрирован: 03.09.2008 02:36:48

Re: Вопрос про процедурный тип

Сообщение beria » 25.12.2016 11:07:26

скалогрыз писал(а):да ну нафик, весь Synapse прописан такой вот вещью:



Да. Вру. Ошибся. Тут тоже все нормально. Проект уже в этом не собирается никак
Аватара пользователя
beria
постоялец
 
Сообщения: 103
Зарегистрирован: 29.09.2016 08:57:13

Re: Вопрос про процедурный тип

Сообщение скалогрыз » 25.12.2016 11:08:27

beria писал(а):Да. Вру. Ошибся. Тут тоже все нормально. Проект уже в этом не собирается никак

Товарыш, Берия. Вамь нюжно больше поработать, над виражением своих мислей!
скалогрыз
долгожитель
 
Сообщения: 1630
Зарегистрирован: 03.09.2008 02:36:48

Re: Вопрос про процедурный тип

Сообщение beria » 25.12.2016 11:10:36

скалогрыз писал(а):{$objfpc} режим?

Ага.....

Добавлено спустя 51 секунду:
скалогрыз писал(а):Товарыш, Берия. Вамь нюжно больше поработать, над виражением своих мислей!

10:10 утра, а я ещё не ложился спать, мучая синапс, fpgui, oxml и кучу подобного...
Аватара пользователя
beria
постоялец
 
Сообщения: 103
Зарегистрирован: 29.09.2016 08:57:13

Re: Вопрос про процедурный тип

Сообщение скалогрыз » 25.12.2016 11:12:48

beria писал(а):10:10 утра, а я ещё не ложился спать....

и здесь такая же хрень :D нашёл чем удивить :)
скалогрыз
долгожитель
 
Сообщения: 1630
Зарегистрирован: 03.09.2008 02:36:48

Re: Вопрос про процедурный тип

Сообщение serbod » 26.12.2016 11:47:02

Компилятор зря ругаться не умеет. Пытаться "заткнуть" его приведением типа или отключением проверок - верный путь выстрелить в ногу. Постарайтесь разобраться и найти причину ругани компилятора, это проще, чем искать причину сбоя во время работы. Не игнорируйте предупреждения (warning).

Есть очень простые приемы безопасного хождения по граблям:

- избегайте публичных полей и методов классов. Чем меньше всего торчит наружу у класса - тем лучше.

- избегайте платформенно-зависимых типов (integer, cardinal, string) в публичных переменных и параметрах. Особенно string может отличаться. Это тип для читаемого текста, без учета кодировки и длины символа. Для бинарных данных используйте AnsiString.

- придерживайтесь принятых в языке/платформе/библиотеке названий. Обработчики в паскале называют Handler, типы обработчиков - Event, чтобы они четко рифмовались со стандартными. Например, TReadFilterEvent, ReadFilterHandler(). Компилятору на это пофиг, а у вас перед глазами будет порядок и сразу будут заметны аномалии.
Аватара пользователя
serbod
постоялец
 
Сообщения: 108
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Пред.

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

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

Сейчас этот форум просматривают: Google [Bot] и гости: 4

Рейтинг@Mail.ru
cron