Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Progressbar aktualisiert zu langsam (https://www.delphipraxis.net/157494-progressbar-aktualisiert-zu-langsam.html)

WizoHulk 13. Jan 2011 16:55

Progressbar aktualisiert zu langsam
 
hallo,

ich habe eine Progressbar die mir den aktuellen status anzeigt wie weit er mit dem Kopiren von Verzeichnissen ist.
Wenn er damit fertig ist wird der timer der Die Form wieder ins nichts verschwindem lässt gestartet.
Das problem ist dabei, das die progressbar noch gar nicht voll ist und er trotzdem den Timer startet.

Die Form und die Progressbar sind beide jeweils auf Doublebuffered gesetzt
hier mal nen Codeschnipsel...

Delphi-Quellcode:
procedure TFormMyBackUpStarter.timUpToDownTimer(Sender: TObject);
var
  LFormBewegung : Boolean;
begin
  if pbGesamtStatus.Position = pbGesamtStatus.max   then
  begin
    //Application.ProcessMessages;
    LFormBewegung            := TMyFormAdvance.FormBewegungUpToDown(self);
    if LFormBewegung = True then
    begin
      timFormBewegung.Enabled := false;
      Application.Terminate;
    end;
  end;

end;

rollstuhlfahrer 13. Jan 2011 17:57

AW: Progressbar aktualisiert zu langsam
 
Delphi-Quellcode:
if LFormBewegung = True then
Böse. Da reicht ein
Delphi-Quellcode:
if LFormBewegung then
.

Wie schnell tickt denn dein Timer? - Und wann wird jetzt der Timer gestartet? - Mit Beginn der Anwendung oder wirklich erst nach Beendigung des Vorgangs? - Mir scheint als ob der Timer viel zu schnell tickt oder einfach die Anwendung fertig ist und vor dem finalen Zeichnen schon der Timer merkt, dass die Anwendung fertig ist und somit das Zeichnen nicht mehr statt findet.

Für Versuchszwecke kannst du auch das DoubleBuffered rausnehmen.

Bernhard

himitsu 13. Jan 2011 18:04

AW: Progressbar aktualisiert zu langsam
 
Windows 7/Vista ist dafür verantwortlich, daß die ProgressBar nicht ruckartik nach oben schnellt, sondern dieses fließend gescheiht.

PS: Das wurde schon mehrmals gefragt und falls es unbedingt nötig ist, dann wurde da auch oftmals eine Lösung aufgezeigt.

WizoHulk 13. Jan 2011 18:50

AW: Progressbar aktualisiert zu langsam
 
habe den thread gefunden...
kann aber mit den Workaround nicht so ganz umgehen..
weiß net ganz genau wie das gemeint ist

zuerst neue Position per Position := NewPosition + 1
dann sofort die tatsächliche neue Position
position := NewPosition

himitsu 13. Jan 2011 20:34

AW: Progressbar aktualisiert zu langsam
 
- Vorwärts hochsetzen (Position + x) geht langsam
- Rückwärts (Position - x) geht schnell

Also erst was Größeres setzen und dann zurück auf den gewünschen Wert.
(um 1 größer fällt dabei am Wenigsten auf)


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