ProgressBar aktualisiert verzögert / hinkt hinterher

Rund um die LCL und andere Komponenten
Antworten
Fraenzken
Beiträge: 24
Registriert: Mi 10. Feb 2016, 10:30

ProgressBar aktualisiert verzögert / hinkt hinterher

Beitrag von Fraenzken »

Hallo,

ich habe ein kleines kosmetisches Problem mit einer Progressbar.
Ich habe folgenden Code geschrieben (Prozent ist ein transparentes Label, das ich mittig über die ProgressBar gelegt habe, um den Fortschritt auch in Prozent anzeigen zu lassen):

Code: Alles auswählen

 
  Bildnr := 1; Stop := FALSE;
  WHILE (NOT Stop) AND (Bildnr <= ParamCount) DO
    BEGIN
      ProgressBar1.Position := Round (((Bildnr-1)/ParamCount)*100);
      Prozent.Caption := IntToStr (ProgressBar1.Position) + '%';
      Application.ProcessMessages;
      (...)
 


Das Prozent-Label zeigt mir die korrekte Prozentzahl an (also z.B. 0, 33, 67, 100). Die Progressbar hinkt aber hinterher; d.h. der Balken hat die Länge (0, 0, 33, 67). Wisst ihr, woran das liegen und wie ich das abstellen könnte?

Danke für die Hilfe!

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: ProgressBar aktualisiert verzögert / hinkt hinterher

Beitrag von Michl »

Weiß nicht, warum das bei dir nicht funktioniert. Evtl. hilft ein ProgressBar1.Repaint oder Invalidate. Bei mir geht es (mein Testprj anbei, vielleicht taugt es als Denkanstoß).
Dateianhänge
TestProgressbarPosition.zip
(2.1 KiB) 59-mal heruntergeladen

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Fraenzken
Beiträge: 24
Registriert: Mi 10. Feb 2016, 10:30

Re: ProgressBar aktualisiert verzögert / hinkt hinterher

Beitrag von Fraenzken »

Vielen Dank, Michl.
Augenscheinlich scheint die Progressbar nicht zu aktualisieren, weil ich direkt danach ein Bild lade - vielleicht übersteigt das meine Prozessor-Kapazitäten. Ich habe mir inzwischen damit beholfen, dass ich den Balken erst nach dem Laden aktualisiere. So ist es o.k. (wenn auch etwas unbefriedigend).

Antworten