不同Object Pascal方言中的事件赋值语法

时间:2015-10-22 12:25:28

标签: syntax-error lazarus delphi

我正在开发一个应该在Delphi和C ++ Builder之间共享的组件,所以我使用Pascal作为通用语。因为我家里的计算机上没有Delphi,所以我首先在Lazarus IDE中创建了该组件。现在我移植了#34;它给Delphi发现了一个令人惊讶的语法问题:

这与FPC编译(但不是Delphi):

FSync.FSyncMethod := @SyncCheckInput;

这与Delphi(但不是FPC)编译:

FSync.FSyncMethod := SyncCheckInput;

尽管存在语法上的分歧,我如何在Lazarus和Delphi之间共享一个单位?

1 个答案:

答案 0 :(得分:15)

在单位的开头插入:

{$IFDEF FPC}{$MODE DELPHI}{$ENDIF}

这将指示FreePascal使用Delphi方言编译单元。 Delphi将忽略{$MODE DELPHI} directive,因为FPC未定义。

然后您可以使用此

FSync.FSyncMethod := SyncCheckInput;

用于动态设置事件。