Il existe deux bogues avec ce gestionnaire d'événements. Pour les réparer, vous pouvez
- supprimer le système. de
TArray<System.Byte>
(dans l'interface et la mise en œuvre)
- ajouter
IdSocketHandle
à la liste uses dans l'interface
Je n'ai pas étudié plus loin, mais après ces changements, le code peut être compilé.
donc le code complet aimerait être
unit Unit12;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
IdSocketHandle, // <-- added
IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient, IdUDPServer;
type
TForm12 = class(TForm)
IdUDPClient1: TIdUDPClient;
IdUDPServer1: TIdUDPServer;
procedure IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
AData: TArray<Byte>; ABinding: TIdSocketHandle);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form12: TForm12;
implementation
{$R *.dfm}
procedure TForm12.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
AData: TArray<Byte>; ABinding: TIdSocketHandle);
begin
//
end;
Le code ci-dessus compile, mais il doesn fonctionne pas. J'ai fait une application simple qui utilise 2 comps 'IdUDPServer', un pour diffuser et un pour écouter, fonctionne comme prévu dans Delphi 2010 mais si apporté DelphiXE et construit ne fonctionne pas, même si je remplace' TArray 'avec 'TBytes' comme dans D2010 –
Peut-être une mise à jour d'une version plus récente de Indy 10 aide, les instantanés quotidiens 'non officiels' sont disponibles à ftp://ftp.fulgan.com/ZIP (current: Indy10_4454.zip) – mjn
j'ai essayé 'Indy10_4454.zip' et' Indy10Tiburon_4448.zip' sans chance, même comportement. –