不同 Object Pascal 方言中的事件分配语法
Event assignment syntax in different Object Pascal dialects
我正在开发一个应该在 Delphi 和 C++Builder 之间共享的组件,所以我使用 Pascal 作为 通用语言。因为家里电脑上没有Delphi,所以先在LazarusIDE中创建组件。现在我 "ported" 它到 Delphi 并发现了一个惊人的语法问题:
这与 FPC 编译(但不是 Delphi):
FSync.FSyncMethod := @SyncCheckInput;
使用 Delphi(但不是 FPC)编译:
FSync.FSyncMethod := SyncCheckInput;
尽管存在句法差异,我如何在 Lazarus 和 Delphi 之间共享一个单元?
在你的单元开头插入:
{$IFDEF FPC}{$MODE DELPHI}{$ENDIF}
这将指示 FreePascal 使用 Delphi 方言来编译单元。 Delphi 将忽略 {$MODE DELPHI}
directive 因为 FPC
未定义。
然后您可以使用这个
FSync.FSyncMethod := SyncCheckInput;
用于动态设置事件。
我正在开发一个应该在 Delphi 和 C++Builder 之间共享的组件,所以我使用 Pascal 作为 通用语言。因为家里电脑上没有Delphi,所以先在LazarusIDE中创建组件。现在我 "ported" 它到 Delphi 并发现了一个惊人的语法问题:
这与 FPC 编译(但不是 Delphi):
FSync.FSyncMethod := @SyncCheckInput;
使用 Delphi(但不是 FPC)编译:
FSync.FSyncMethod := SyncCheckInput;
尽管存在句法差异,我如何在 Lazarus 和 Delphi 之间共享一个单元?
在你的单元开头插入:
{$IFDEF FPC}{$MODE DELPHI}{$ENDIF}
这将指示 FreePascal 使用 Delphi 方言来编译单元。 Delphi 将忽略 {$MODE DELPHI}
directive 因为 FPC
未定义。
然后您可以使用这个
FSync.FSyncMethod := SyncCheckInput;
用于动态设置事件。