Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Vista: Verzögerte TProgressBar? (https://www.delphipraxis.net/87875-vista-verzoegerte-tprogressbar.html)

Rakshasa 6. Mär 2007 17:42


Vista: Verzögerte TProgressBar?
 
Hallo Leute,

ich habe auf meinem System (Vista 64-Bit) und Delphi 2006 folgendes seltsames Phänomen (mal wieder..):

Wenn ich über mein Programm die normale TProgressBar anzeige, dann reagiert diese mit "Zeitverzögerung". Wenn ich also bsp. eine Schleife von 0 bis 10000 habe und ProgressBar.Position setze, dann ist die Progressbar erst bei der Hälfte, obwohl die Schleife schon durch ist, das Maximum also erreicht wurde. Es scheint fast so, als wäre die ProgressBar mit einem Timer verbunden, der alle 300-500 ms ein Update der ProgressBar durchführt und erst dann die Füllung mit dem Wert von "Position" abgleicht.

Alle Aufrufe von .ProcessMessages, .Update oder .Repaint haben nichts bewirkt...
Dieser Fehler taucht nur auf, wenn das XPManifest eingebunden ist.


Weiß jemand Rat??

himitsu 7. Mär 2007 11:13

Re: Vista: Verzögerte TProgressBar?
 
Sowas hab ich auch bemerkt, nur schien es mir so, als wenn da nicht nur eine Verzögerung enthalten wäre, sondern Vista bei größeren Schritten einen "fließenden" Übergang schaft ... also nicht gleich der neue Wert angenommen wird, sondern die Bar langsam "rüberrutscht". :gruebel:

Allerdings hab ich Vista nur in 'ner VM laufen und dachte es hängt damit irgendwie zusammen. :stupid:
(in der VM läuft ja alles etwas langsamer)

Rakshasa 7. Mär 2007 19:00

Re: Vista: Verzögerte TProgressBar?
 
Naja, könnte sein ... allerdings gibt es genug Programme, die die ProgressBar offensichtilch ohne Beeiträchtigung benutzen können. Scheint wohl ein weiteres Delphi Vista-Problem zu sein.

Assertor 7. Mär 2007 20:16

Re: Vista: Verzögerte TProgressBar?
 
Hallo,

das Problem ist das veränderte Verhalten der Progressbars unter Aero. Der Progressbar kümmert sich sozusagen selbst um sein Design.

Es gibt aber einen Workaround:
Der Progressbar läuft zwar verzögert Vorwärts, aber springt Rückwärts korrekt und sofort in seine neue Position.

Also am Besten:
- zuerst neue Position per Position := NewPosition + 1
- dann sofort die tatsächliche neue Position
Position := NewPosition

Gruß winkel79

Quellen:
http://news.jrsoftware.org/news/innosetup/msg62356.html
http://forums.microsoft.com/MSDN/Sho...64615&SiteID=1

Rakshasa 7. Mär 2007 20:21

Re: Vista: Verzögerte TProgressBar?
 
Zitat:

Zitat von winkel79
Also am Besten:
- zuerst neue Position per Position := NewPosition + 1
- dann sofort die tatsächliche neue Position
Position := NewPosition

Aaah ... das funktioniert bestens, danke!!! :)

TrickyMartin 15. Jul 2009 10:39

Re: Vista: Verzögerte TProgressBar?
 
OMG und ich such' schon ewig was *ich* da falsch mache :shock:

Vielen Dank auch von mir.

Luckie 15. Jul 2009 10:45

Re: Vista: Verzögerte TProgressBar?
 
Zitat:

Zitat von Assertor
Es gibt aber einen Workaround:
Der Progressbar läuft zwar verzögert Vorwärts, aber springt Rückwärts korrekt und sofort in seine neue Position.

Also am Besten:
- zuerst neue Position per Position := NewPosition + 1
- dann sofort die tatsächliche neue Position
Position := NewPosition

Das darf doch nicht wahr sein. :wall:

Könnte das mal jemand ohne die VCL ausprobieren? Eventuell liegt der Fehler in der Kapselung der Progressbar in der VCL. Oder lässt sich das Problem auch mit anderen Frameworks nachvollziehen?

patti 15. Jul 2009 12:19

Re: Vista: Verzögerte TProgressBar?
 
Hallo,

Kann das Problem bei mir ebenfalls feststellen und habe mich auch gewundert, woran das liegen könnte. Unter XP funktioniert alles einwandfrei, nur unter Vista halt eben nicht. Dank dem "Workaround" stimmt zwar jetzt die Anzeige, aber so richtig sauber ist das nicht, oder?

Patti

Dawn87 15. Jul 2009 12:45

Re: Vista: Verzögerte TProgressBar?
 
Ich denke das Verhalten ist beabsichtigt. Zumindest unter Delphi 2009 hat die ProgressBar die Eigenschaften "Smooth" und "SmoothReverse" die das von euch geschilderte Verhalten beeinflussen sollten.

Habe aber gerade kein Vista zur Hand um das auszuprobieren.

Grüße
Stefan

turboPASCAL 15. Jul 2009 13:09

Re: Vista: Verzögerte TProgressBar?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Luckie
Könnte das mal jemand ohne die VCL ausprobieren?

Ja, das ist auch bei nonVCL so.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:15 Uhr.
Seite 1 von 2  1 2      

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