码迷,mamicode.com
首页 > 其他好文 > 详细

XE7 & FMX 那些年我们一起上过的控件:ListView 之 (2) 加载数据时如何显示进度条

时间:2014-12-28 23:34:51      阅读:472      评论:0      收藏:0      [点我收藏+]

标签:

本文介绍一下ListView下如何加载数据、及使用进度条反馈当前进度给用户。

注意:

原创作品,请尊重作者劳动成果,转载请注明出处!!!原文永久固定地址:http://www.cnblogs.com/weii/p/4190694.html 

 

我们先来看看效果图:

技术分享

 

 

进度条需要这样用的,以下为本文参考代码:

procedure TForm1.Button2Click(Sender: TObject);
begin
  TThread.CreateAnonymousThread(
    procedure()
    var
      i,j: integer;
      t1,t2: cardinal;
      t3: double;
    begin
      listView1.Items.Clear;
      label1.Text:=‘‘;
      i:=1000;
      ProgressBar1.Value:=0;  //没有数据, 置0
      ProgressBar1.Max:=i;    //最大值
      t1:=TThread.GetTickCount; //记录时间,非必须的
      for j := 0 to i do begin  //如果你是从数据库或内存表里取数据的,则应该如 for j:=0 to ClientDataSet.RecordCount-1 do 这样取
        sleep(5);  //停5ms,必须的,否则下面填数据时会卡菊花。这里看你CPU的强硬程度,5-20即可,手机用户需适当设置
        TThread.Synchronize(TThread.CurrentThread,
          procedure()
          begin
            with ListView1.Items.Add do begin
              text:=No: +j.ToString;
              t2:=TThread.GetTickCount;   //记录时间,非必须的
              t3:=(t2-t1)/1000;         //计算时间,非必须的
              detail:=Format(耗时:%f 秒,[t3]);  //显示耗时
            end;
            ProgressBar1.Value:=j;  //进度条当前进度
            Label1.Text:=Format([ 进度:%d / %d ],[j,i]); //显示当前进度
          end
        );
      end;
  end).start;
end;

以上只是简单表示一下思路,各位可以发挥想像处理得更好。

在下一篇,我们介绍一下如何自定义进度样式显示ListView加载进度。谢谢关注本文。

 

PS:
--------------------------------------------------------------- 
FireMonkey移动开发可加QQ群:165232328 (本人非管理员,仅仅其中一成员,此群高手林立,期待各位Delphi爱好者共同交流)。 

 

XE7 & FMX 那些年我们一起上过的控件:ListView 之 (2) 加载数据时如何显示进度条

标签:

原文地址:http://www.cnblogs.com/weii/p/4190694.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!