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 Statusbar in die Listview (https://www.delphipraxis.net/28027-statusbar-die-listview.html)

m0sch3r 18. Aug 2004 21:44


Statusbar in die Listview
 
Hi

in einer listview soll in der dritten spalte(erste zeile) eine statusbar hin..... normalerweise wird ein eintrag folgenderma?sen hinzugefugt
Delphi-Quellcode:
 with form1.DownloadFilesListView.Items.Add do
          begin
          Caption := NewDownload.DFile.SFilename;
          SubItems.add( NewDownload.DFile.SArtist);
          SubItems.add(NewDownload.DFile.STitle);
bein einer Statusbar mus aber der Eingenschaft "data" eines feldes in listview ein statusbar hinzugefugt werden
Delphi-Quellcode:
pb:= TProgressBar.Create(self);
pb.Parent := Listview1;
DownloadFilesListView.items[0].Data := pb;
Der eintrag hinzufugt der zweiten spalte einer zeile die statusbar, wie kann ich aber der 3 oder anderer zeile die statusbar hunzufuegen......?

Luckie 20. Aug 2004 12:23

Re: Statusbar in die Listview
 
Kuck mal hier: http://www.luckie-online.de/Downloads/Alte%20Programme/ -> lvwithbuttons, eventuell hilft dir das ja.

m0sch3r 21. Aug 2004 11:48

Re: Statusbar in die Listview
 
Danke
habe das Problemm schon gelöst.....:))

Procedure die mit den Daten ein Progressbar in die Listview hinzufugt
Delphi-Quellcode:
procedure AddFileToDownloadListView(NewDownload : TDownloadFile);
var
  i, n        : integer;
  Rechteck    : TRect;

begin
     for i := 0 to form1.DownloadFilesListView.Items.Count   do
          begin
            form1.DownloadFilesListView.Items.Add;
            if Form1.DownloadFilesListView.Items[i].Caption = '' then
               begin
               Form1.DownloadFilesListView.Items[i].Caption := NewDownload.DFile.SFilename;
               Form1.DownloadFilesListView.Items[i].SubItems.add( NewDownload.DFile.SArtist); //:= ;
               Form1.DownloadFilesListView.Items[i].SubItems.add(NewDownload.DFile.STitle);
               //Hinzufuegen der Progressbar.
               RechtEck := form1.DownloadFilesListView.Items[i].DisplayRect(drBounds);
               RechtEck.Left := Form1.DownloadFilesListView.columns[0].Width + Form1.DownloadFilesListView.columns[1].Width + Form1.DownloadFilesListView.Columns[2].Width;
               RechtEck.Right := RechtEck.Left + Form1.DownloadFilesListView.columns[3].Width;

               GlobalPB := TProgressBar.Create(GlobalPB );//GlobalPB = globale variable vom TProgressbar
               GlobalPB.Parent := form1.DownloadFilesListView;
               GlobalPB.BoundsRect := RechtEck;

               GlobalPB.Position := 30;
               Form1.DownloadFilesListView.Items[i].Data := GlobalPB;
               end; // if
          end; // for
end; // AddFileToDownloadListView
das einzige Problemm das beim ziehen der Spalte dir Progressbar stehen bleibt und sich nicht anpasst..das OnResize Erreignis tritt komischerweise nicht gleich beim resizen sondern paar Sekunden !!! spater...

die Funktion zur Grösenanpasung der Progressbar bei ändern der Grösse..
Delphi-Quellcode:
procedure PBRefreshOnDownloadListView();
var
   i,  n    : integer;
   RechtEck  : Trect;
begin
     for i:=0 to form1.DownloadFilesListView.Items.Count - 1 do
          begin
          PB := Form1.DownloadFilesListView.Items[i].Data; //PB globaler Progressbar.

          RechtEck := form1.DownloadFilesListView.Items[i].DisplayRect(drBounds);
          RechtEck.Left := Form1.DownloadFilesListView.columns[0].Width + Form1.DownloadFilesListView.columns[1].Width + Form1.DownloadFilesListView.Columns[2].Width;
          RechtEck.Right := RechtEck.Left + Form1.DownloadFilesListView.columns[3].Width;
          PB.BoundsRect := RechtEck;
          form1.DownloadFilesListView.Items[i].Data := PB;
          end; // for
end;

ich hoffe ich konnte damit jemandem helfen.....:))))



Sergej

MrKnogge 21. Aug 2004 20:10

Re: Statusbar in die Listview
 
alternativ kannst du auch bei den Schweizern nach ListView suchen, da gibt es einen Code der Ereignisse beim Verändern der Spaltengrößen auslöst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 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