Delphi实现下载进程的动态显示

许多知名的下载软件中都有下载管理器,用一个TListView来显示下载的进程,你可以清楚的看到已经下载了多少,还有多少内容仍需下载,这样的控件,Delphi自身并未提供,但我们可以在TListView的基础之上加入进度条控件(TProgressBar)来实现这一功能,这样就能既能满足我们的实际需求,又不用“牺牲”口袋里白花花的银子,还能增加我们对控件嵌套的认识,一箭三雕,何乐而不为呢?

到底该怎么做呢?让我想想……好了让我们先从TListView的ViewStyle属性开始吧,这个属性我们常用,把TListView做为一个表格来显示各种数据时,我们常常把这个属性设置成vsReport,设置之后,最左边的列(Column)包含一个小的图标和数据,从第二列开始就是显示一个个字段的数据,这是我们最常见的TListView的样子,每天一打开Windows的资源管理器,我们就能看到它。(如图一)

打开Delphi,新建一个工程,在自动生成的Form上,放置一个TListView控件,在它的Columns属性中定义两列,第一列放置数据项(Item),第二列用来存放Progress.(如图二)

在Form上加入一个按钮(Button),在按钮的Click事件中加入如下代码,用于在按下按钮时,可以在TListView的第二列显示TProgress。

添加Item的代码如下:

procedure TForm1.AddItemButtonClick(Sender: TObject);
const
  pbColumnIndex = 1;
  pbMax = 100;
var
  li : TListItem;
  lv : TListView;
  pb : TProgressBar;
  pbRect : TRect;
begin
  lv := ListViewEx1;
  //建立一个新的ListItem
  li := lv.Items.Add;
  li.Caption := ’Item ’ + IntToStr(lv.Items.Count);
  //建立一个ProgressBar,置入TListView的第二列中
  pb := TProgressBar.Create(nil);
  pb.Parent := lv;
  li.Data := pb;
  pbRect := li.DisplayRect(drBounds);
  pbRect.Left := pbRect.Left +
  lv.Columns[-1 + pbColumnIndex].Width;
  pbRect.Right := pbRect.Left +
  lv.Columns[pbColumnIndex].Width;
  pb.BoundsRect := pbRect;
end; //添加ItemButton事件

上面的代码可以实现这样的功能:按下按钮之后,一个Progressbar被建立,一个对Progressbar的引用被加进ListItem的Data属性,最后,Progressbar被放置在由pbColumnIndex属性指定的列中。

当想要将一个项(Item)从TListView中删除,你必须先判断添加进去的Progressbar的内存占用是否已经被释放,如果已经完成,就继续。

时间: 2024-12-29 11:15:29

Delphi实现下载进程的动态显示的相关文章

win7电脑如何让电脑处于离开状态却不影响下载进程?

  说到下载东西,有一个很让人觉得麻烦的情况就是,下载的时候会影响到上网速度,因此不少朋友都喜欢让电脑开着下载东西,但是人却不在这边,但是这样就会出现一个情况,电脑在一段时间之后就会进入到待机状态,而下载的进程也会因为电脑待机也中断掉.那么怎么办呢?其实不用担心,因为在咱们的win7 64位旗舰版中有一种状态叫做离开模式,只需要让电脑进入离开模式,就完全不会影响到正在进行的下载进程,还可以不影响电脑的电源寿命哦! 1.首先,咱们同时按下win+R打开电脑的运行窗口,然后在窗口中输入regedit

delphi 防止结束进程 或全局钩子

问题描述 delphi 防止结束进程 或全局钩子 各位大大,我的一个程序想防止被杀,网上找了很多资料,但delphi7能用的确实没找到,只需要windows的资源管理器不能结束就ok,其他没什么要求, 像全局hook也好,或是双进程亦或是三进程守护也罢.都可以,但一定要能用.谁能给我个代码,确实很急,消息方面是我的盲区,一点都不行,之前是自己学的数据库编程,其他没经验.还请各位大大们给点源码,只要能用就行.先行谢谢了. 但如果写进系统服务中,貌似听说win7中不能用,所以暂时不考虑这东西. 解决

Delphi XE3 下载

Delphi XE3 下载地址 http://altd.embarcadero.com/download/radstudio/xe3/delphicbuilder_xe3_win.iso 写新文章

Delphi官方下载地址

Delphi 官方下载地址   RAD StudioXE3 (with Update 2) v17.0.4770.56661 官方 ISO 文件下载(3.49GB) http://altd.embarcadero.com/download/radstudio/xe3/delphicbuilder_xe3_upd2_win.iso RAD StudioXE3 (with Update 1) v17.0.4723.55752 官方 ISO 文件下载(3.48GB)http://altd.embarc

在VC 6.0下如何调用Delphi开发的进程内COM

源代码包中共有两个zip文件,其中DelphiCallVCCOM.zip为Delphi调用VC的COM组件,VCCallDelphiCOM.zip为VC调用Delphi的COM组件 因为本人的语言水平很差,考大学时150的总分,我考了个60分.外语也是,初中及格过一次,会考及格过一次.其它的时间好像从没有及格过.所以我不写文章,因我一百字的文章给我写,至少要出八九个错别字.哈哈-.真是个马大哈.你别说我还真的姓马.所以下面的文章中有错误之处,请你老人家多多理解.谁叫你看我的文章了的.下面就谈正事

Delphi Xe 下载(破解)

2010年9月8日,领多平台数据库工具和开发软件提供商英巴卡迪诺科技公司今日宣布在全球范围内推出Embarcadero RAD Studio XE--一款开发工具套装,包括Delphi.C++Builder和Delphi Prism的新版本以及新增的RadPHP XE. 这个称做RAD Studio XE的"2011"新版本提供了多项新功能,能够改善应用程序的性能,优化开发流程以及更快速地构建超快速的本地Windows..NET和Web应用程序.   一.delphicbuilder_

Delphi 官方下载 地址

RAD Studio 2007 v11.0.2902.10471 说明:已集成Update3   http://altd.codegear.com/download/radstudio2007/CodeGearRADStudio2007_Dec2007.iso   RAD Studio 2010 v14.0.3615.26342 说明:已集成 Update 4/5 和 Help Update 1 http://altd.embarcadero.com/download/RADStudio2010

用RealPlayer直接下载各种网络视频

RealPlayer的Web下载和录制功能识别诸如YouTube.MySpace.六间房.土豆网或电视台站点之类的网站上的嵌入式视频.下载按钮出现在每个可用视频的旁边.使用此按钮快速下载视频,并将视频直接保存到媒体库"下载和录制"类别中,以便在联机或脱机情况下随时观看. 无论何时开始下载(例如,进入 2 秒钟,到达一半,甚至是在到达终点后),RealPlayer 均会录制整个视频.下载将在独立窗口中进行,并且不需要管理或监视此过程. 你可以重复此过程,以同时快速成功下载多个视频.视频将

使用RealPlayer11从Web下载视频

使用 RealPlayer,只需单击一下下载按钮即可录制和保存 Internet 视频. RealPlayer 的 Web 下载和录制功能识别诸如 YouTube.MySpace.六间房.土豆网或电视台站点之类的网站上的嵌入式视频.下载按钮出现在每个可用视频的旁边.使用此按钮快速下载视频,并将视频直接保存到媒体库"下载和录制"类别中,以便在联机或脱机情况下随时观看. 无论何时开始下载(例如,进入 2 秒钟,到达一半,甚至是在到达终点后),RealPlayer 均会录制整个视频.下载将在