我在进行大量查询时,GRID和其他控件都死掉了,请问调用什么函数能避免这种情况呢?

解决方案 »

  1.   

    在循规中加入
      Applicatin.ProcessMessages;
      

  2.   

    线程是一个解决的方法,hehe,其实重要的还是你的机器的性能
      

  3.   


      Applicatin.ProcessMessages;
      

  4.   

    TUpdateThread = class(TThread)
    private
     FForm: TForm; 
     procudure Execute;override;
    public
      constructor create(Parent: TForm);
    end;  
    constructor TUpdateThread.create(Parent: TForm);
    begin
      FForm := Parent;
      FreeOnTerminited := true;
      inherited Create(false)
    end;
    procudure TUpdateThread.Execute;override;
    begin
      try
        while not Terminated do
        if Assigned(FForm) then 
        begin
          FForm.Update;
          Applicatin.ProcessMessages;
        end; 
      except
      end;
    end;var UpdateThread: TUpdateThread;
    在你的查询开始前
    UpdateThread := TUpdateThread.Create(Self);
    在你的查询结束时
    UpdateThread.Terminate;
    注意不用UpdateThread.free;
      

  5.   

    to  huojiehai(海天子) :FreeOnTerminited 这个变量是干什么的?我试过你的例子后立刻结帐,麻烦你给我讲解一下!
      

  6.   

    http://expert.csdn.net/Expert/topic/1610/1610575.xml?temp=.9948542
    来解决这个问题先!