我正在开发一个应该在Delphi和C ++ Builder之间共享的组件,所以我使用Pascal作为通用语。因为我家里的计算机上没有Delphi,所以我首先在Lazarus IDE中创建了该组件。现在我移植了#34;它给Delphi发现了一个令人惊讶的语法问题:
这与FPC编译(但不是Delphi):
FSync.FSyncMethod := @SyncCheckInput;
这与Delphi(但不是FPC)编译:
FSync.FSyncMethod := SyncCheckInput;
尽管存在语法上的分歧,我如何在Lazarus和Delphi之间共享一个单位?
答案 0 :(得分:15)
在单位的开头插入:
{$IFDEF FPC}{$MODE DELPHI}{$ENDIF}
这将指示FreePascal使用Delphi方言编译单元。 Delphi将忽略{$MODE DELPHI}
directive,因为FPC
未定义。
然后您可以使用此
FSync.FSyncMethod := SyncCheckInput;
用于动态设置事件。