Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Progressbars ist Listview scrollen nicht mit (https://www.delphipraxis.net/101578-progressbars-ist-listview-scrollen-nicht-mit.html)

Van HelF 15. Okt 2007 22:01


Progressbars ist Listview scrollen nicht mit
 
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?

Van HelF 19. Okt 2007 11:47

Re: Progressbars ist Listview scrollen nicht mit
 
niemand eine idee :(

mimi 19. Okt 2007 13:54

Re: Progressbars ist Listview scrollen nicht mit
 
ich denke dir wird nix anders übrig bleiben die Komponenten im onPaint Ereignisse selbst zu setzten.
Die ListView hat eine TCanvas Eigenschaft, die wieder rum hat eine Eigenschaft: ClipRect.

Welche dir evlt. weiter helfen kannst.
Du müsstest jetzt nur noch alle Komponenten auf ClipRect.Top setzten.
Aber das geht weiß ich nicht....
Wobei ich glaube die PB müsste auch der ListView angehören, dazu.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz