我在做 使用POPUP发送信息(delphi)时,在给它的IP赋值时,不能循环给它赋值,我给他一个循环,要它循环20次,就结束,但是却出现了无限循环,不知道为什么,求解
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;type
TForm1 = class(TForm)
SpeedButton2: TSpeedButton;
SpeedButton1: TSpeedButton;
GroupBox1: TGroupBox;
Memo1: TMemo;
Label1: TLabel;
Edit1: TEdit;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
private
{ Private declarations } public
{ Public declarations }
function ToUnicode(str: string;dest:PWidechar):integer;
function SendMsg(ToStr,FromStr,Msg:string):integer;
end;var
Form1: TForm1;//API函数
function NetMessageBufferSend(servername:PWideChar;
MsgName:PWideChar;
FromName:PWideChar;
Buf:PWideChar;
var BufLen:integer):integer;cdecl;
//调用Dll文件
function NetMessageBufferSend;external 'netapi32.dll' name 'NetMessageBufferSend';implementation{$R *.dfm}function TForm1.SendMsg(ToStr, FromStr, Msg: string): integer;
var
ToName:array [0..64] of WideChar;
WMsgText:array [0..1000] of WideChar;
MsgLen,i:integer;
begin
for i:=0 to 64 do ToName[i]:=#0;//NULL
ToUnicode(ToStr,ToName);
for i:=0 to 1000 do WMsgText[i]:=#0;//NULL
ToUnicode(Msg,WMsgText); Result:=NetMessageBufferSend(nil,ToName,nil,@WMsgText,MsgLen)
end;function TForm1.ToUnicode(str: string; dest: PWidechar): integer;
var
len:integer;
begin
len := 0;
StringtoWidechar(str,dest,255);
result:=len;
end;procedure TForm1.SpeedButton1Click(Sender: TObject);
var
t,k,s:integer;
a:string;
begin
t:=1 ; try
for k:=1 to 20 do
begin
if t<200 then
begin
a:='192.168.1.'+inttostr(t);
SendMsg(a,'jason',Memo1.text);
showmessage(a);
inc(t);
end
else
begin
exit;
end; end; except
Exit;
end;
end;procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
close;
end;end.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;type
TForm1 = class(TForm)
SpeedButton2: TSpeedButton;
SpeedButton1: TSpeedButton;
GroupBox1: TGroupBox;
Memo1: TMemo;
Label1: TLabel;
Edit1: TEdit;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
private
{ Private declarations } public
{ Public declarations }
function ToUnicode(str: string;dest:PWidechar):integer;
function SendMsg(ToStr,FromStr,Msg:string):integer;
end;var
Form1: TForm1;//API函数
function NetMessageBufferSend(servername:PWideChar;
MsgName:PWideChar;
FromName:PWideChar;
Buf:PWideChar;
var BufLen:integer):integer;cdecl;
//调用Dll文件
function NetMessageBufferSend;external 'netapi32.dll' name 'NetMessageBufferSend';implementation{$R *.dfm}function TForm1.SendMsg(ToStr, FromStr, Msg: string): integer;
var
ToName:array [0..64] of WideChar;
WMsgText:array [0..1000] of WideChar;
MsgLen,i:integer;
begin
for i:=0 to 64 do ToName[i]:=#0;//NULL
ToUnicode(ToStr,ToName);
for i:=0 to 1000 do WMsgText[i]:=#0;//NULL
ToUnicode(Msg,WMsgText); Result:=NetMessageBufferSend(nil,ToName,nil,@WMsgText,MsgLen)
end;function TForm1.ToUnicode(str: string; dest: PWidechar): integer;
var
len:integer;
begin
len := 0;
StringtoWidechar(str,dest,255);
result:=len;
end;procedure TForm1.SpeedButton1Click(Sender: TObject);
var
t,k,s:integer;
a:string;
begin
t:=1 ; try
for k:=1 to 20 do
begin
if t<200 then
begin
a:='192.168.1.'+inttostr(t);
SendMsg(a,'jason',Memo1.text);
showmessage(a);
inc(t);
end
else
begin
exit;
end; end; except
Exit;
end;
end;procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
close;
end;end.
解决方案 »
- 哪里有adodb的相关参考资料,最好在线的(受网络限制)
- 新手求助:多窗体调用问题(简单)!
- Ado.sql:select * from tbl open 后的dbgrid 数据不可选(鼠标点击,像死机)是什么情况造成的?
- 请问如何访问带密码的TABLE.....ONLINE WAITING!
- delphi+sql server2000
- 怎么调这个Com组件??
- 国庆,散分!
- 如何实现给一个网页模拟点击按钮和模拟输入文字?
- 这个信息存放在注册表什么位置
- 推荐一个最好的delphi的网站吧,要控件,文章最全的
- 编译好的执行程序,如果调用带有路径的BPL文件呢?
- delphi 数组下标从0还是1开始?
//把cdecl改成stdcall就行啦!你试试!
function NetMessageBufferSend(servername:PWideChar;
MsgName:PWideChar;
FromName:PWideChar;
Buf:PWideChar;
var BufLen:integer):integer;stdcall;
//调用Dll文件
function NetMessageBufferSend;external 'netapi32.dll' name 'NetMessageBufferSend';