我正在尝试让 NetCom7 聊天演示正常工作。
在 Git 中,它说:
您实现了 OnHandleCommand 事件处理程序,并且, 根据 aCmd 参数(整数),您响应以下结果 通过将 OnHandleCommand 的 Result 设置为 任何你喜欢的东西(TBytes)。
这在代码中看起来如何?我目前在名为 Server 的 ChatServer.exe ufrmMain.pas 文件上有一个 TncServerSource 组件。
我尝试了以下行:
Server.OnHandleCommand()
虽然我不明白参数是什么。
OnHandleCommand 是一个属性,用于存储对事件方法的引用,该事件方法将在收到命令时触发。
它的工作方式与 Delphi 中的任何其他事件非常相似。因此,如果您在设计时将服务器组件放置在表单上,您就可以从对象检查器中分配合适的事件方法,就像任何其他标准 Delphi 事件一样。
如果您要从代码动态创建服务器组件,则需要设置
OnHandleCommand
属性以引用合适的事件方法。所述事件方法必须是格式与TncOnSourceHandleCommand
匹配的对象方法,在ncSources.pas
单元中定义为:
TncOnSourceHandleCommand = function(
Sender: TObject; aLine: TncLine;
aCmd: Integer; const aData: TBytes; aRequiresResult: Boolean;
const aSenderComponent, aReceiverComponent: string): TBytes of object;
例如,您形成私有部分,定义下一个函数
private
function ServerOnHandleCommandEvent(Sender: TObject; aLine: TncLine; aCmd: Integer; const aData: TBytes; aRequiresResult: Boolean; const aSenderComponent, aReceiverComponent: string): TBytes of object;
创建服务器组件后,您可以使用以下方法将此函数分配给
OnHandleCommand
属性:
Server.OnHandleCommand := MyForm.ServerOnHandleCommandEvent;
这是在运行时从代码分配 Delphi 事件的标准方法,而不是在设计时分配它们
最后,您只需在
ServerOnHandleCommandEvent
方法中编写正确的代码即可正确处理接收到的命令。
由于我从未使用过这个库,所以恐怕我无法在这里向您展示任何具体示例。但是我看到这个库附带了一些演示,因此您可能需要检查这些演示以供进一步参考。