Action:=caFree出了错
你不用application.pro..
看看还出不出错

解决方案 »

  1.   

    procedure TForm2.Button1Click(Sender: TObject);
    begin
      begin
        while sIndex=0 do
        begin
          //do something      
          Application.ProcessMessages;
        end;
      end;
    end;
      

  2.   

    Application.ProcessMessages的功能是让其他控件能获取消息,你 这种情况没有必要用.
      

  3.   

    有没有什么方法可以代替这个processMessages,因为如果
    用WinApi写程序时,没有Application这个对象呀?
      

  4.   

    先看看Delphi的帮助吧,弄明白ProcessMessage是用在哪些时候的。
      

  5.   

    把 Action:=caFree;去掉
    改为 
    free;
    就行了,你的form2就被free了
    我试了,没错
      

  6.   

    使用回调函数啊,比如要用键盘操作来结束循环,就加一个callback,
    在这个函数里面处理
      

  7.   

    TApplication.ProcessMessages用于程序执行一个长的过程又不中断其他
    代码的执行(例如安装程序时响应放弃按钮),与HandleMessages的区别是
    如果没有发现消息,ProcessMessages方法不会把应用程序置于空闲状态.
      

  8.   

    procedure TForm2.Button1Click(Sender: TObject);
    begin
      begin
        while sIndex=0 do
        begin
          Application.ProcessMessages;//如果这时你关闭窗口,那么这段代码中如果用到该窗体中变量,都会出现访问错误,建议建立一个标志,来控制!
        end;
      end;
    end;