![]() |
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?? |
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) |
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.
|
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: ![]() ![]() |
Re: Vista: Verzögerte TProgressBar?
Zitat:
|
Re: Vista: Verzögerte TProgressBar?
OMG und ich such' schon ewig was *ich* da falsch mache :shock:
Vielen Dank auch von mir. |
Re: Vista: Verzögerte TProgressBar?
Zitat:
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? |
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 |
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 |
Re: Vista: Verzögerte TProgressBar?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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 by Thomas Breitkreuz