我正在开发一个应该在Delphi和C++Builder之间共享的组件,因此我使用Pascal作为通用语言。由于我家里没有Delphi,所以我首先在Lazarus IDE中创建了这个组件。现在我将其“移植”到Delphi,并发现了一个令人惊讶的语法问题:
这在FPC上可以编译(但在Delphi上不能):
FSync.FSyncMethod := @SyncCheckInput;
这个可以使用Delphi编译(但不能使用FPC):
FSync.FSyncMethod := SyncCheckInput;
尽管Lazarus和Delphi语法不同,我该如何分享一个单元?
TThread
及其Synchronize()
方法:FreePascal Wiki | 多线程应用教程 | TThread 类 - Remy LebeauApplication.QueueAsyncCall
和在Delphi中通过AllocateHWnd
向一个不可见的窗口发送PostMessage
来实现。当然,我也使用了TThread
类,但是由于其约会特性,Synchronize
在我的情况下并没有帮助。无论如何,还是谢谢 :) - WolfQueue
方法可供使用(我不确定,现在手头没有D4或其文档)。因此,我最好从问题中删除旁注,或者更具体地说明我正在使用的版本? - WolfQueue()
函数。FreePascal 模仿 D7。 - Remy LebeauTThread.Queue
目前在LCL中不存在。 - Wolf