Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Free Pascal, Pascal ABC и другие _ Overload функций и процедур в Fpc

Автор: Ozzя 16.03.2006 16:28

как реализовать?

Автор: volvo 16.03.2006 16:43

Читай:
http://forum.pascal.net.ru/index.php?showtopic=8713

Там же есть и про перегрузку функций blum.gif

Автор: Ozzя 16.03.2006 17:17

TMT 4 pascal

Код

interface
...
procedure PutPixelA(X,Y: LongInt);
overload  PutPixel = PutPixelA;
procedure PutPixelB(X,Y: LongInt; Color: DWord);
overload  PutPixel = PutPixelB;
...
implementation
...

При переходе на fpc
В секции implementation понятно, описываю как:
Код
operator PutPixel(X,Y: LongInt);
...

operator PutPixel(X,Y: LongInt; Color: DWord);
...

А в секции interface как описать?

Автор: volvo 16.03.2006 17:20

А обязательно перегружать здесь? По-моему, достаточно использовать параметр по умолчанию... Ну, если хочешь перегрузку - тогда:

{$mode OBJFPC}
interface
...
procedure PutPixel(X,Y: LongInt);
procedure PutPixel(X,Y: LongInt; Color: DWord);
...
implementation
...
procedure PutPixel(X,Y: LongInt);
begin ... end;

procedure PutPixel(X,Y: LongInt; Color: DWord);
begin ... end;

Автор: Ozzя 16.03.2006 17:23

volvo
Спасибо. Сейчас отредактирую. Проверю.
Кстати, на само слово overload fpc не дает ошибки. Оно для чего-то используется?

Автор: volvo 16.03.2006 17:25

smile.gif А если Дельфийскую программу надо откомпилировать?

Не забудь {$mode OBJFPC}, без него будет ошибка ...

Автор: Ozzя 16.03.2006 17:28

Прошло.
Ругается на

Код
var GrResult        : LongInt := grInvalidMode;


Присвоения переменной значения в разделе var в fpc не допускается?

А вообще насколько tmt и fpc совместимы? Такое впечатление, что игра не стоит свеч nea.gif

Автор: volvo 16.03.2006 17:50

Ozzя,

Цитата
var GrResult : LongInt = grInvalidMode;



А присоедини-ка всю программу, посмотрим, можно ли перенести это на FPC, или действительно не стОит...

Автор: Ozzя 16.03.2006 17:59

Ругается на edx

Цитата
GraphX.pas(1140,20) Error: Unknown identifier "EDX"

Код
procedure ClearBanked; assembler;
      asm
        cld
        mov     edx,[BankOffset]




Отправил на pm

Автор: volvo 16.03.2006 18:00

У меня не ругается... Смотри в настройках Ассемблера (Options -> Compiler -> Assembler) ... Что-то там не так... Должно понимать.

(PM не получил)

Автор: Ozzя 16.03.2006 18:18

Да, стояло att style, поменял на intel

PM повторил

Отругало

Код
aphX.pas(7045,22) Fatal: illegal character "'&'" ($26)


Код
add     eax,[&Dx]



Заменил автоматом code на assembler.
Не заметил, что поменялось ErrorCode на Errorassembler lol.gif
Искал ошибку долго mega_chok.gif wub.gif yes2.gif