Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Progressbar in ListView beim Scrollen neu positionieren (https://www.delphipraxis.net/139864-progressbar-listview-beim-scrollen-neu-positionieren.html)

Helmi 7. Sep 2009 10:20


Progressbar in ListView beim Scrollen neu positionieren
 
Hallo,

mittels folgendem Code positionier ich in die 5. Spalte einer ListView (Report) eine Progressbar:

Delphi-Quellcode:
  with ListView_Dateien do
    begin
      //ProgressBar in der jeweiligen Zeile in der Spalte fünf erzeugen
      PB_Rect := Items[Line].DisplayRect(drBounds);

      with PB_Rect do
        begin
          Left   := Left + Columns[0].Width + Columns[1].Width +
                            Columns[2].Width + Columns[3].Width;

          Right  := Pred(Left + Columns[4].Width);
          Bottom := Pred(Bottom);
        end;

      //ProgressBar beschreiben
      with PB_Status do
        begin
          BoundsRect := PB_Rect;
          Visible    := true;
          Min        := 0;
          Max        := 100;
        end;
    end;
Was auch gut funktioniert - nur kann ich zu diesem Zeitpunkt die ListView scrollen. Leider wird
dann die Progressbar nicht mehr in der dementsprechenden Zeile angezeigt, sondern bleibt einfach
an dem letzten Platz liegen (was ja klar ist, weil die Position absolut ist).

Wir kann ich nun die Progressbar entweder:
1. fix einer Zelle zuweisen, ohne selbst auf das Positionieren eingehen zu müssen oder
2. beim Scrollen die Progressbar-Positionen neu berechnen und anzeigen lassen?

uligerhardt 7. Sep 2009 13:57

Re: Progressbar in ListView beim Scrollen neu positionieren
 
Edit: Unfug gelöscht. :mrgreen:

Helmi 8. Sep 2009 22:50

Re: Progressbar in ListView beim Scrollen neu positionieren
 
*push*

himitsu 8. Sep 2009 23:04

Re: Progressbar in ListView beim Scrollen neu positionieren
 
Mir würde nur einfallen die OnScrollEreignisse einzufügen
(TListView-Nachfahre mit den entsprechenden Messages)


PS: im Objektinspector von Delphi bleibt auch alles an seinem Platz :mrgreen:

PSS: vergiß aber nicht deine ProgressBar auszublenden, wenn wie aus dem Sichtbaren Bereich rauswandert.

Helmi 8. Sep 2009 23:07

Re: Progressbar in ListView beim Scrollen neu positionieren
 
ich hab jetzt eine ListView mit einem MouseWheel-Event
also ich könnte drauf reagieren

nur wie berechne ich die neue Position?

XXcD 8. Sep 2009 23:19

Re: Progressbar in ListView beim Scrollen neu positionieren
 
Hast du dir das schonmal durchgelesen: http://delphi.about.com/library/weekly/aa053105a.htm
Das müsste genau das sein was du suchst

Helmi 8. Sep 2009 23:31

Re: Progressbar in ListView beim Scrollen neu positionieren
 
Zitat:

Zitat von XXcD
Hast du dir das schonmal durchgelesen: http://delphi.about.com/library/weekly/aa053105a.htm
Das müsste genau das sein was du suchst

Das schaut echt gut aus, eigentlich genau das was ich bräuchte...


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

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