許多知名的下載軟件中都有下載管理器,用一個(gè)TListView來顯示下載的進(jìn)程,你可以清楚的看到已經(jīng)下載了多少,還有多少內(nèi)容仍需下載,這樣的控件,Delphi自身并未提供,但我們可以在TListView的基礎(chǔ)之上加入進(jìn)度條控件(TProgressBar)來實(shí)現(xiàn)這一功能,這樣就能既能滿足我們的實(shí)際需求,又不用“犧牲”口袋里白花花的銀子,還能增加我們對(duì)控件嵌套的認(rèn)識(shí),一箭三雕,何樂而不為呢?
到底該怎么做呢?讓我想想……好了讓我們先從TListView的ViewStyle屬性開始吧,這個(gè)屬性我們常用,把TListView做為一個(gè)表格來顯示各種數(shù)據(jù)時(shí),我們常常把這個(gè)屬性設(shè)置成vsReport,設(shè)置之后,最左邊的列(Column)包含一個(gè)小的圖標(biāo)和數(shù)據(jù),從第二列開始就是顯示一個(gè)個(gè)字段的數(shù)據(jù),這是我們最常見的TListView的樣子,每天一打開Windows的資源管理器,我們就能看到它。
打開Delphi,新建一個(gè)工程,在自動(dòng)生成的Form上,放置一個(gè)TListView控件,在它的Columns屬性中定義兩列,第一列放置數(shù)據(jù)項(xiàng)(Item),第二列用來存放Progress.
在Form上加入一個(gè)按鈕(Button),在按鈕的Click事件中加入如下代碼,用于在按下按鈕時(shí),可以在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;
//建立一個(gè)新的ListItem
li := lv.Items.Add;
li.Caption := ’Item ’ + IntToStr(lv.Items.Count);
//建立一個(gè)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事件
到底該怎么做呢?讓我想想……好了讓我們先從TListView的ViewStyle屬性開始吧,這個(gè)屬性我們常用,把TListView做為一個(gè)表格來顯示各種數(shù)據(jù)時(shí),我們常常把這個(gè)屬性設(shè)置成vsReport,設(shè)置之后,最左邊的列(Column)包含一個(gè)小的圖標(biāo)和數(shù)據(jù),從第二列開始就是顯示一個(gè)個(gè)字段的數(shù)據(jù),這是我們最常見的TListView的樣子,每天一打開Windows的資源管理器,我們就能看到它。
打開Delphi,新建一個(gè)工程,在自動(dòng)生成的Form上,放置一個(gè)TListView控件,在它的Columns屬性中定義兩列,第一列放置數(shù)據(jù)項(xiàng)(Item),第二列用來存放Progress.
在Form上加入一個(gè)按鈕(Button),在按鈕的Click事件中加入如下代碼,用于在按下按鈕時(shí),可以在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;
//建立一個(gè)新的ListItem
li := lv.Items.Add;
li.Caption := ’Item ’ + IntToStr(lv.Items.Count);
//建立一個(gè)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事件

