Hi
Ich habe mir eine Klasse geschrieben, um UDPBroadcast zu verwenden. Wenn ich nun dem UDPServer das OnUDPRead-Event zuweisen will, erzeugt der Compiler folgende Fehlermeldung:
E2010 Inkompatible Typen: 'array of Byte' und 'System.TArray<System.Byte>'
Als Hilfe hier noch die Klasse:
Delphi-Quellcode:
TUDPBroadcast = class
strict protected
udpClient:TidUDPClient;
udpServer:TidUDPServer;
Port:integer;
BroadText:string;
public
constructor Create(thePort:integer);
destructor Destroy(); override;
procedure UDPServerRead(Sender: TObject; AData: TidBytes; ABinding: TIdSocketHandle);
procedure sendBroadcast();
procedure sendBroadcastEx(bc_text:string);
end;
constructor TUDPBroadcast.Create(thePort:integer);
begin
BroadText:='irgendwas';
Port:=thePort;
udpClient:=TidUDPClient.Create;
udpClient.Active:=false;
udpClient.BroadcastEnabled:=true;
udpClient.Port:=Port;
udpClient.Active:=true;
udpClient.ReceiveTimeout:=2000;
udpServer:=TidUDPServer.Create;
udpServer.Active:=false;
udpServer.Name:='UDPServer1';
udpServer.DefaultPort:=Port;
udpServer.OnUDPRead:=UDPServerRead; // hier meckert der Compiler
udpServer.ThreadedEvent:=true;
udpServer.Active:=true;
end;