本帖最后由 ymxuymxu 于 2011-10-01 01:12:25 编辑

解决方案 »

  1.   

    我记得java支持break到哪一层
    至少d7是不支持的该goto还是得goto,只要对明晰、简化程序有好处,运行效率是第二
      

  2.   

    需要退出的时候,设置你的变量Bool:= True就符合你的条件语句了
      

  3.   

    除了变量Bool外,还应加上自然退出的语句,比如加上计数器,达到什么个数,自动退出。
      

  4.   


    procedure TForm1.hotkey(var msg:tmessage);
    var
      ...
      function fc:boolean;
        ....
    begin
      if msg.LParamHi=vk_f2 then
        bool:=false;
      if msg.LParamHi=vk_f1 then
      begin
        bool:=true;
        while bool do {·2·}
        begin
          .... //开始死循环
          Application.ProcessMessages;
          if bool=false then
            break; //在这里按下F2键会跳出循环
       while fc do    //fc为一个函数 {·1·}
          begin
            ...
            Application.ProcessMessages;
            if bool=false then
              break; {此处的break,只能跳出循环1,而不能跳出循环2。}
          end;
          ...
        end;
      end;
    end;