我無法將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',至少在你的代碼的其他版本中。如果你不想實例化一個類的實例,只需使用一個類方法即可。 –