http://www.csdn.net/expert/Topic/347/347933.shtm

解决方案 »

  1.   

    这样用,对我在处理的事务,当windows乡音其他消息时,会不会有影响。
    除了在循环中,如果在我想服务器update时可不可以用。
      

  2.   

    来自帮助文件:
    procedure TForm1.FormCreate(Sender: TObject);begin
      Button1.Caption := 'Ignore Messages';
      Button2.Caption := 'Process Messages';end;procedure TForm1.Button1Click(Sender: TObject);var
      I, J, X, Y: Word;
    begin
      I := 0;
      J := 0;
      while I < 64000 do
      begin
        Randomize;
        while J < 64000 do
        begin
          Y := Random(J);
          Inc(J);
        end;
        X := Random(I);
        Inc(I);
      end;
      Canvas.TextOut(10, 10, 'The Button1Click handler is finished');end;procedure TForm1.Button2Click(Sender: TObject);var
      I, J, X, Y: Word;
    begin
      I := 0;
      J := 0;
      while I < 64000 do
      begin
        Randomize;
        while J < 64000 do
        begin
          Y := Random(J);
          Inc(J);
          Application.ProcessMessages;
        end;
        X := Random(I);
        Inc(I);
      end;
      Canvas.TextOut(10, 10, 'The Button2Click handler is finished');end;
      

  3.   

    http://www.csdn.net/expert/Topic/203/203899.shtm
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Integer;
    begin
      for I := -100000 to 100000 do begin
        Caption := IntToStr(I); //程序忙着运算不处理其它消息//这样象死机一样
        //
      end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      I: Integer;
    begin
      for I := -100000 to 100000 do begin
        Caption := IntToStr(I);
        Application.ProcessMessages; //程序虽然忙,可也要抽时间处理其它消息//比如你可以移动它
        //由于要处理其它消息所有会降低执行速度
      end;
    end;
      

  5.   

    用了ProcessMessages如果我没有其他的消息,会不会降低效率
      

  6.   

    我用update可不可以用这个,如何用
      

  7.   

    >用了ProcessMessages如果我没有其他的消息,会不会降低效率
    会降低效率,并且不可能没有消息产生(系统时间消息呢?)
    >我用update可不可以用这个,如何用 
    //update其实就是更新窗体
    procedure TWinControl.Update;
    begin
      if HandleAllocated then UpdateWindow(FHandle);
    end;
    //一般作启动封面的时候会用到
      

  8.   

    zswang(伴水)(需要充充电)
    我是用在Tquery中的sql语句 如with query1 do
    begin
      clear;
      sql.add('update **************************');
      execsql;
      Appliction.ProcessMessage;
    end;
      这样用有没有用
      

  9.   

    with query1 do
    begin
      clear;
      sql.add('update **************************');
      execsql; //执行完之后才执行下一句
      Appliction.ProcessMessage; //所有没有你象要的结果
    end;//建议你用avi来给用户看看,知道没有死机就行
      

  10.   

    ProcessMessage是在你处理消息时,也会对windows的其他消息响应。不会等待处理完当前消息再去处理其他消息。
      

  11.   

    我发现这个东西用处不大
    我得sleep占用资源太多
    Appliction.ProcessMessage
    仍然没解决到sleep得假4机问题
      

  12.   

    我看这么说对不对Appliction.ProcessMessage;
    这一句语句在的地方,就允许系统[是os还是应用程序]响应一个消息。响应了一个消息后程序继续执行下面的语句。是不是这样,我只得是,它是不是只响应一个消息,还是在一个时间段响应消息,还是在这字后可以响应消息,还是有其他条件。