我无法将OnUDPRead事件链接到IdUDPServer。如何链接OnUDPRead事件
代码如下:
uses
System.SysUtils, IdUDPServer, IdGlobal, IdSocketHandle, Classes;
var
udp: TIdUDPServer;
buffer: TIdBytes;
myBinding: TIdSocketHandle;
procedure UDPRead (Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);
var
bytes_received: integer;
begin
bytes_received:= AData.size;
end;
begin
myBinding := udp.Bindings.Add;
myBinding.IP := '0.0.0.0';
myBinding.Port := 5100;
udp.OnUDPRead := UDPRead; // Error occurs here
udp.Active := True;
end.
我收到错误消息:
[dcc32 Error] ACUR401_20170802_UDPServer.dpr(16): E2029 ';' expected but 'OF' found
[dcc32 Error] ACUR401_20170802_UDPServer.dpr(28): E2009 Incompatible types: 'method pointer and regular procedure'
我相信我的困难是,我无法将事件处理程序链接到程序。
它必须是一个对象方法。你有什么是常规程序。 – Victoria
您报告的错误与您提供的代码不匹配。细节很重要。看起来你试图在过程声明的最后添加'object',至少在你的代码的其他版本中。如果你不想实例化一个类的实例,只需使用一个类方法即可。 –