Использовать процедурный тип при объявлении процедуры\функци

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

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

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение vitaly_l » 23.04.2017 21:10:52

zub писал(а):Директива стоит абсолютно правильная

У меня с {$MODE objfpc} - всё чудесно работает, а при неправильной постановке задачи не даёт компилировать пишет варнинг.
В то время как, допотопный :wink: {$MODE DELPHI} - ошибку не видит и запускает программу с априори сбоем.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3070
Зарегистрирован: 31.01.2012 16:41:41

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение zub » 23.04.2017 21:13:15

Представь что по неким причинам в этом месте мне нужна именно {$MODE DELPHI}
это не решение проблемы, как и не
>>допотопный
режим компиляции
zub
долгожитель
 
Сообщения: 2257
Зарегистрирован: 14.11.2005 23:51:26

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение Лекс Айрин » 23.04.2017 21:30:59

Кстати да... режим режимом, но пропускать ошибку...
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4093
Зарегистрирован: 19.02.2013 16:54:51

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение vitaly_l » 23.04.2017 23:02:07

zub писал(а):Представь что по неким причинам в этом месте мне нужна именно {$MODE DELPHI}

В баг-трекер. Они просто забыли, там что-то прописать, наверное.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3070
Зарегистрирован: 31.01.2012 16:41:41

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение zub » 24.04.2017 20:35:29

vitaly_l
Это не баг, это делфисовместимость
zub
долгожитель
 
Сообщения: 2257
Зарегистрирован: 14.11.2005 23:51:26

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение vitaly_l » 24.04.2017 20:45:29

zub писал(а):делфисовместимость

А что в Дэльфи такой код писать нельзя? Свалится?
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3070
Зарегистрирован: 31.01.2012 16:41:41

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение zub » 24.04.2017 20:57:28

Свалится абсолютно также как и fpc. Я думал {$T+} должно помогать, но нет
zub
долгожитель
 
Сообщения: 2257
Зарегистрирован: 14.11.2005 23:51:26

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение pupsik » 24.04.2017 21:37:42

даже варнингов нету

project1.lpr(15,7) Error: Incompatible types: got "<address of function(ShortString):ShortString;Register>" expected "<procedure variable type of procedure(LongInt);Register>"
как бы так.

vitaly_l что то у вас всё компилится и работает :)

п.с.
zub в режиме "дельфина" ведь собака не используется. Зачем намудрили то?
pupsik
энтузиаст
 
Сообщения: 1009
Зарегистрирован: 20.08.2014 16:20:13

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение vitaly_l » 24.04.2017 21:49:03

pupsik писал(а): в режиме "дельфина" ведь собака не используется. Зачем намудрили то?

Я же говорю - допотопный устаревший язык. Лазарус, скоро перемелет их в труху. Так что дельфи доживают свои последние годы.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3070
Зарегистрирован: 31.01.2012 16:41:41

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение olegy123 » 24.04.2017 21:56:30

Учите C# все.. наступила новая эра..
olegy123
энтузиаст
 
Сообщения: 721
Зарегистрирован: 25.02.2016 12:10:20

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение vitaly_l » 24.04.2017 21:59:09

olegy123 писал(а):Учите C# все.. наступила новая эра..

C#? <== Отстой!
Паскаль и Паскале подобные языки - удобнее для написания серьёзных программ.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3070
Зарегистрирован: 31.01.2012 16:41:41

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение Лекс Айрин » 24.04.2017 22:00:15

pupsik писал(а): в режиме "дельфина" ведь собака не используется. Зачем намудрили то?


И кто тебе это сказал? Ее можно опускать и за это трупаскалисты, дельфи недолюбливают... имхо, совершенно правильно.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4093
Зарегистрирован: 19.02.2013 16:54:51

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение pupsik » 24.04.2017 22:11:34

И кто тебе это сказал?
иногда "дядько" в лазаре ругается. А, по памяти, кажись в вики. Или вам ещё найти "кто сказал"???

Добавлено спустя 2 минуты 1 секунду:
Re: Использовать процедурный тип при объявлении процедуры\функци
п.с.
"дядько" - когда пытаешся "сплюснуть" эти режимы и забываешся что в одном модуле дельфин сидит, в ином обж.
pupsik
энтузиаст
 
Сообщения: 1009
Зарегистрирован: 20.08.2014 16:20:13

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение zub » 24.04.2017 22:22:43

Код: Выделить всё
program Project1;
{$MODE DELPHI}
type
  TmySuperproc=function:pointer;

function mySuperproc2:TmySuperproc;
begin
  result:=nil;
  WriteLn('mySuperproc2');
end;

function mySuperproc:TmySuperproc;
begin
  result:=@mySuperproc2;
  WriteLn('mySuperproc');
end;

var
  pp:TmySuperproc;
begin
  pp:=@mySuperproc;
  pp;
end. 

Давайте опустим этих 2х собачек. ктонить скажет что будет с ними и без них не компилируя-запуская?
zub
долгожитель
 
Сообщения: 2257
Зарегистрирован: 14.11.2005 23:51:26

Re: Использовать процедурный тип при объявлении процедуры\фу

Сообщение pupsik » 24.04.2017 22:24:14

опустим этих 2х собачек
тогда режим правильный выставьте. Или собак уберите, коли режим дельфина нравится....

п.с.
Кстати: 7-й дельфин (варнингом) аккуратно интересуется: что это за собачка у тебя затиснута.? В ХЕ не смотрел.
pupsik
энтузиаст
 
Сообщения: 1009
Зарегистрирован: 20.08.2014 16:20:13

Пред.След.

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

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

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

Рейтинг@Mail.ru