2010-10-17 23 views

Répondre

1

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; 
+0

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 –

+0

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

+0

j'ai essayé 'Indy10_4454.zip' et' Indy10Tiburon_4448.zip' sans chance, même comportement. –