在delphi中按下ESC键(其他特定键)来将结束循环如何实现?或者用时间控件来结束循环,各位大哥如何实现,最好给个例子,先谢了!!

解决方案 »

  1.   

    设一个全局变量,在循环内部判断这个变量的值,并且调用Application.ProcessMessages使得这个变量的值在改变时能够在循环内部检测到。当按下ESC或其他键(捕捉按键的事件可以在Form的相应事件或通过其他手段来获取)时,改变这个全局的值,如果全局变量达到预定的值,就跳出循环。
      

  2.   


    private
      IsExit:Boolean;
      function DoEvent:boolean;implementationprocedure TForm1.Button1Click(Sender: TObject);
    begin
      IsExit:=False;
      KeyPreview:=True;
      while DoEvent do
    end;function TForm1.DoEvent: boolean;
    begin
      Application.ProcessMessages;
      if  IsExit=True then  Result:=False;
    end;procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
    begin
      if Key=#27 then IsExit:=True;
    end;