+ -
当前位置:首页 → 问答吧 → 全局热键的问题。

全局热键的问题。

时间:2011-08-23

来源:互联网

要实现的功能为:按F11停止,按F10运行repeat...until中间的代码,编译时按F10能执行repeat...until之间的代码,但按下F11后并不会停止,没有跳出循环,仍然执行repeat...until中间的代码,我这样做为什么不行?各位大虾有会好办法没?

F10 F11已经注册为热键。

procedure TForm1.hotkey(var msg:tmessage); //热键响应事件
var
  bool:boolean;
begin
  if msg.LParamHi=vk_f11
  then bool:=true;
  if msg.LParamHi=vk_f10
  then begin
  repeat
  .....
  until bool=true;
   end;
end;

作者: ymxuymxu   发布时间: 2011-08-23

在循环里加上 Application.ProcessMessages; 试试

作者: aqtata   发布时间: 2011-08-24

同意楼上的。

死循环的循环体内加上Application.ProcessMessages;试试。

我用
Delphi(Pascal) code
  while True do
  begin
    Application.ProcessMessages;
    if IfExit then break;
    Working;
  end;



是可以的

作者: hongss   发布时间: 2011-08-24

同意LZ上,主线程一直跑,就无法及时响应外部的东西

作者: rainychan2009   发布时间: 2011-08-24

热门下载

更多