测试时的代码如下:
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdUDPClient, IdBaseComponent, IdComponent, IdUDPBase,
  IdUDPServer, StdCtrls, ExtCtrls, IdSocketHandle;type
  TForm1 = class(TForm)
    udpServerZhu: TIdUDPServer;
    udpClientZhu: TIdUDPClient;
    Memo1: TMemo;
    Memo2: TMemo;
    timTem: TTimer;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure timTemTimer(Sender: TObject);
    procedure udpServerZhuUDPRead(Sender: TObject; AData: TStream;
      ABinding: TIdSocketHandle);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    SendStr : String;
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Clear;
  Memo2.Clear;
  udpClientZhu.Host := '192.168.1.11';
  SendStr := 'Add '+FormatDateTime('hhmmss',now);
  udpClientZhu.Send(SendStr);
  timTem.Enabled := True;
end;procedure TForm1.timTemTimer(Sender: TObject);
begin
  SendStr := 'Send '+FormatDateTime('hhmmss',now);
  udpClientZhu.Send(SendStr);
  Memo2.Lines.Add('正在发送:'+SendStr);
end;procedure TForm1.udpServerZhuUDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
  InceptStr: String;
  len :Integer;
begin
  SetLength(InceptStr, AData.Size);
  AData.Read(InceptStr[1], AData.Size);
  InceptStr := UpperCase(InceptStr);
  len := length(InceptStr);
  Memo1.Lines.Add('系统收到:'+SendStr);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
  timTem.Enabled := False;
end;end. udpServerZhu 和udpClientZhu 的DefaultPort为9899,Active为True;其余属性为默认值!
  可当我把这些控件及其事件运用到Dll库中时,事件udpServerZhuUDPRead就无效了!不知道这是为什么?用过此控件的高手们请帮忙讲一下!