程序运行时界面出现延迟,且在任务管理器中显示:无响应
为防止用户觉得程序已死,而出现的误操作,有什么改进的办法?我的程序是读文本文件,使用了TStringlist,读完后把数据存入数据库(SQL)中
一个文件有1002次insert操作。

解决方案 »

  1.   

    循环的时候
    Application.ProcessMessages;
      

  2.   

    如果你使用的是ADOQuery的话,你可以这样做!
    加入一个窗体,放入一个progressbar,label1设置  adoquery1.ExecuteOptions:=adoquery1.ExecuteOptions +[eoAsyncFetch];
     或者adoquery1.ExecuteOptions := [eoAsyncFetchNonBlocking];
    :)忘记了!你自己试验吧!然后再下面的事件中写入代吗!
    procedure TForm1.ADOQuery1FetchProgress(DataSet: TCustomADODataSet;
      Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
    begin
      ProgressBar1.Position := Progress;
      progressbar1.Max := maxprogress;
    label1.caption := inttostr(progress)+'/'+inttostr(maxprogress);
      Application.ProcessMessages;
      
      
    end;