procedure TMainForm.FormShow(Sender: TObject);
var
I: Integer;
ProBar: TGauge;
Li: TListItem;
begin
for I := 0 to DataListView.Items.Count - 1 do begin
Li := DataListView.Items[I];
ProBar := TGauge.Create(Self);
ProBar.Parent := DataListView;
Li.Data := ProBar;
ProBar.Left := Li.DisplayRect(drBounds).Left + DataListView.Columns[0].Width+5;
ProBar.Top := Li.DisplayRect(drBounds).Top+1;
ProBar.Width := DataListView.Columns[1].Width-5;
ProBar.Height:= 14;
ProBar.BackColor:=$00F6F6F6;
ProBar.ForeColor:=clSilver;
ProBar.Font.Name:='Tahoma';
ProBar.Font.Size:=8;
end;
end;
procedure TMainForm.FormDestroy(Sender: TObject);
var
I: Integer;
begin
for I := 0 to DataListView.Items.Count - 1 do begin
if DataListView.Items[I].Data <> nil then
TProgressBar(DataListView.Items[I].Data).Free;
end;
end;
procedure TMainForm.Timer1Timer(Sender: TObject);
begin
Randomize;
TGauge(DataListView.Items[Random(DataListView.Items.Count)].Data).Progress := Random(101);
end;
3 条评论
用Canvas画更好些,这样太耗资源了。
试试拖动这个窗口边界,直至出现垂直滚动条,再将窗口复原,看看发生了什么-这个程序中的进度条完全错位了,下面的进度条被上方的覆盖掉了!这个问题如何解决?
这个偏方的结果还行