Einzelnen Beitrag anzeigen

Van HelF

Registriert seit: 24. Okt 2005
Ort: Karlsbrunn
195 Beiträge
 
Delphi 7 Personal
 
#1

Progressbars ist Listview scrollen nicht mit

  Alt 15. Okt 2007, 22:01
Hallo,
ich habe folgenden problem, ich erzeuge mit folgendem Code progressbars in einer listview.
Scrollt man aber nun nach unten bleiben die progressbars "stehen" und passen somit nicht mehr zum eintrag.
(Ich habe auch schon etliche beiträge gelesen, jedoch beziehen sich diese alle auf das änden der spaltengröße)

Delphi-Quellcode:
procedure AddProgressbar(lv:Tlistview);
var
  r: TRect;
begin
  r := lv.Items[lv.items.Count-1].DisplayRect(drBounds);
  r.Left := r.Left + lv.columns[0].Width+lv.columns[1].Width+lv.columns[2].Width+lv.columns[3].Width+1;
  r.Right := r.Left + lv.columns[4].Width-1;
  pb:=TProgressbar.Create(Nil);
  pb.Parent:=lv;
  pb.BoundsRect:=r;
  pb.Position:=0;
  pb.Height:=pb.Height-1;
  pb.Smooth:=true;
  pb.DoubleBuffered:=true;
  lv.Items[lv.items.Count-1].Data:=pb;
end;
Mit diesem Code ergibt sich das gleiche problem
Delphi-Quellcode:
procedure TForm1.AddItemButtonClick(
  Sender: TObject);
const
  pbColumnIndex = 1;
  pbMax = 100;
var
  li : TListItem;
  lv : TListView;
  pb : TProgressBar;
  pbRect : TRect;
begin
  lv := ListView1;

  //create new ListItem (for the lv)
  li := lv.Items.Add;
  li.Caption := 'Item ' + IntToStr(lv.Items.Count);

  //create a ProgressBar, place it in the second column
  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; //AddItemButtonClick
Gibt es eine möglichkeit die progressbars so hinzuzufügen, das diese autom. mitscrollen?
  Mit Zitat antworten Zitat