由于加载的数据量很大,所以希望可以用一个启动窗体来弥补
程序启动时一段时间内没有界面显示的不足。谢谢。

解决方案 »

  1.   

    http://www.7880.com/Info/Article-389fd980.html
    随便找了一个。。
      

  2.   

    作一个启动窗体,在工程文件.dpr里,创建主窗口之前先创建这个启动窗口
    frmSplash:=TfrmSplash.create(nil);
      

  3.   

    在加载之前
    frmwait.show;
    Application.ProcessMessages;
    //你的加载语句
    frmwait.close;
      

  4.   

    Application.CreateForm(TfmPictureShow,fmPictureShow); //启动窗体
        fmPictureShow.Show;
        fmPictureShow.Repaint;
        fmPictureShow.ProgressBar.StepBy(25);
        OpenTable(); procedure OpenTable();
    var
        i,j,itmp:integer;
        strPriv:string;
    begin
         itmp := 0;
            for i := 0 to dm.ComponentCount - 1 do
            begin
              if (dm.Components[i] is TDataSet)  then
                 itmp := itmp+1;
            end;        fmPictureShow.ProgressBar.StepBy(25);        for i := 0 to dm1.ComponentCount - 1 do
            begin
              if (dm1.Components[i] is TDataSet)  then
                 itmp := itmp+1;
            end;        TblDealer.open;
            TblContact.Open;
            .....
            fmPictureShow.ProgressBar.StepBy(25);
            fmPictureShow.ProgressBar.Step := 900 div itmp;
            for i := 0 to ComponentCount - 1 do
            begin
                 if (Components[i] is TDataSet)  then
                 begin
                      try
                          fmPictureShow.ProgressBar.StepIt;
                          (Components[i] as TDataSet).open;
                      except
                            WriteIniFile('Error' , inttostr(i) , Components[i].Name);
                      end;
                  end;
            end;
    end;