测试时的代码如下:
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就无效了!不知道这是为什么?用过此控件的高手们请帮忙讲一下!
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就无效了!不知道这是为什么?用过此控件的高手们请帮忙讲一下!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货