如何跳出一个死循环?(35分)

  • 主题发起人 主题发起人 neel
  • 开始时间 开始时间
N

neel

Unregistered / Unconfirmed
GUEST, unregistred user!
while True do
begin
windows.beep(3333,333);
//相应键盘或鼠标消息退出;这里该怎么写
end;
 
放一Ttime 控件,设一全局布尔型变量 在ontime事件写如下
while boolean do
begin
windows.beep(3333,333);
sendmessage(handle,WM_MOUSEWHEEL,lwparam,hwparam)
end;
处理WM_MOUSEWHEEL消息时只要把那个全局的布尔型变量设为false 再inherted 就行了
 
不,不是这样的。
如果加TTime控件,这样写就不是死循环了:)

 
刚才说错了
在Ttime 的ontime事件中把全局的布尔型变量设为false
while True do
begin
windows.beep(3333,333);
if not 全局变量 then break;
end;
处理WM_MOUSEWHEEL消息时只要把Ttime.enable:=true,再inherted 就行了
 
应该这样:
bQuit:=False;
while true do
begin
beep(....);
Application.ProcessMessages;
if bQuit then break;
end;
其中bQuit是一个全局变量,你可以在其他的鼠标和键盘处理中把他设置为True即可。
 
就是当有消息产生,则条件=false就跳出循环了吗。
 
you can use HOOK do it!
 
exit or break
可以跳出当前循环,具体是哪一个我忘了,自己试一下。
 
Kingron的方法不错!我也是这么想的!
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
585
import
I
I
回复
0
查看
687
import
I
后退
顶部