delphi线程,这里应该怎么改?

来源:百度知道 编辑:UC知道 时间:2024/06/27 23:46:12
begin
while i = 1 do
begin //因为I 永远=1 所以一直不会退出
if form1.Thread_stat=1 then //按下开始按钮后 设置 Thread_stat 的值=1 此时线程开始工作
begin
PostMessage(Ghwnd,WM_KEYDOWN,$4D,0);
end;
sleep(500);
end;
{ Place thread code here }
end;
//////////////////////////////
这是别人写的一个线程实例,我初学不太明白,while i = 1 do这个地方。能不能改成不是永远重复begin...end之间的操作,而是点击button1只开始一次,然后中途有问题的话,就点击button2停止,现在上面那段代码是一直在按M键。。我想按一次M键应该怎么改。谢谢
不行,按你那样只把while i=1 do 去掉的话,一次都不执行了,我也不知道为啥。。
这段代码上面还有个
var
i:Integer=1;
如果把i:Integer=1;删掉,就编译错误了- -||

begin
I:=0;
while i < 2 do
begin //因为I 永远=1 所以一直不会退出
if form1.Thread_stat=1 then //按下开始按钮后 设置 Thread_stat 的值=1 此时线程开始工作
begin
PostMessage(Ghwnd,WM_KEYDOWN,$4D,0); //这儿要执行两次,才算按键有效
end;
sleep(500);
i:=i+1;
end;
{ Place thread code here }
end;
//////////////////////////////

begin
if form1.Thread_stat=1 then
begin
PostMessage(Ghwnd,WM_KEYDOWN,$4D,0);
end;
end;
//////////这样就是只有执行一次