在程序运行中,当从数据库读取数据时,如何在界面上使用ProgressBar,计算出正确的后台运行时间,并用ProgressBar表示其进度情况?

解决方案 »

  1.   

    我收集的一个 看看吧procedure TForm1.FormCreate(Sender: TObject);
    begin
      ADOQuery1.ExecuteOptions := [eoAsyncFetch];//设为异步读取
    end;//ADOQuery的OnFetchProgress事件
    procedure TForm1.ADOQuery1FetchProgress(DataSet: TCustomADODataSet;
      Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
    begin
      ProgressBar1.Position := Progress;
      ProgressBar1.Max := MaxProgress;
    end;//ADOQuery的OnFetchComplete事件
    procedure TForm1.ADOQuery1FetchComplete(DataSet: TCustomADODataSet;
      const Error: Error; var EventStatus: TEventStatus);
    begin
      ProgressBar1.Position := ProgressBar1.Max;
      ShowMessage('OK');
    end;