procedure TForm1.RemoveItemButtonClick(Sender: TObject); var lv
: TListView; li : TListItem; i, idx : integer; pb :
TProgressBar; begin lv := ListViewEx1;
li :=
lv.Selected;
if li <> nil then begin idx :=
li.Index; TProgressBar(li.Data).Free;//先释放TProgressBar lv.Items.Delete(idx);
//把行向上移动 for
i := idx to -1 + lv.Items.Count do begin li :=
lv.Items.Item[i]; pb := TProgressBar(li.Data); pb.Top :=
pb.Top - (pb.BoundsRect.Bottom -
pb.BoundsRect.Top); end; end; end;
//删除ItemButton事件 完成之后,我们来测试一下,我们拖一个TTimer控件,然后在它的OnTime事件中填入下面的代码,模拟一下在一个真实的环境下,这个被我们美化过的TListView控件会有如何精彩表现,也让大伙一起体会一把写程序的小小成就感吧。(如图三)
代码如下:
procedure TForm1.Timer1Timer(Sender: TObject); var idx :
integer; pb: TProgressbar; lv : TListView; begin lv :=
ListViewEx1;
if lv.Items.Count = 0 then Exit;
//随机生成一个数据项
//根据生成的数据来控制TProgressBar的长度 idx := Random(lv.Items.Count); pb
:= TProgressBar(lv.Items[idx].Data); if pb.Position < pb.Max
then pb.StepIt else pb.Position :=
0; end;//Timer事件 就是这样的简单,任何有名的软件都是由这样的一个个小知识点构成,只要细心体会知名软件的优势与长处,模仿然后改进说不定你能做出比它们都棒的软件!