我在打开数据库的时候,要进行等待,如何显示执行进度?我看了书和以前的贴子,是不win32里有个控件ProgressBar,但我不知道如何设置和与数据库关联呢?比如说,我利用ADoquery!

解决方案 »

  1.   

    做个假的如果实现呢,我对这个控件的确不会用,我这样的不知道对不对procedure TForm_ckcx.Adoquery_ckcxAfterOpen(DataSet: TDataSet);
    begin
       ProgressBar1.Max := AdoQuery_ckcx.RecordCount;
       ProgressBar1.Position := 1;
       ProgressBar1.Position := ProgressBar1.Position+1;
    end;
      

  2.   

    一个假进度的例子:
    begin
     Maindata.Query.Close;MainData.Query.SQL.Clear;
     MainData.Query.SQL.Text:=sql;
     try try
      MainForm.MainProgressBar.Position:=3;//这就是假的进度
      MainForm.MainStatus.SimpleText:='正在操作数据库!';
      MainData.MainConnection.Connected:=true;
      MainData.Query.ExecSQL;
     except
      on E:Exception do
      begin
       MainForm.MainStatus.SimpleText:=E.Message+'   严重错误,请重新安装程序';
       MainForm.MainProgressBar.Position:=0;
      end;
     end;
     finally
       MainData.Query.SQL.Clear;
       MainData.Query.Close;
       MainData.MainConnection.Connected:=false;
       MainData.Query.Active:=false;
       MainForm.MainProgressBar.Position:=MainForm.MainProgressBar.Max;//假的进度完成
       MainForm.MainStatus.SimpleText:='数据库操作成功!';
     end;
    end;
      

  3.   

    就是先设置一个progressbar的postion位置,最后一下子填满
      

  4.   

    for i:=0 to 100 do
     progressbar1.position:=i;
    也可以用timer来控制