Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi progressbar läuft nicht synchron mit (https://www.delphipraxis.net/143695-progressbar-laeuft-nicht-synchron-mit.html)

karoglan 21. Nov 2009 07:21


progressbar läuft nicht synchron mit
 
Liste der Anhänge anzeigen (Anzahl: 1)
hab ein problem:
ein progressbar soll mit den editfeldern den insgesamten fortschritt anzeigen.
leider funktioniert das mit dem progressbar nicht richtig



hier ist das programm( ich habs jetzt schnell gemacht, es ist noch nicht fertig)


mfg

SirThornberry 21. Nov 2009 08:45

Re: progressbar läuft nicht synchron mit
 
Könntest du dein Problem nicht einfach beschreiben?
Du weißt am besten an welcher Stelle was in deinem Programm passiert. Von daher wäre es auch sinnvoller einfach die entsprechenden Stellen des Quelltextes zu posten anstelle den gesamten Quelltext den andere dann erst durchsuchen müssen.

karoglan 21. Nov 2009 09:01

Re: progressbar läuft nicht synchron mit
 
Delphi-Quellcode:
procedure TForm1.Timer3Timer(Sender: TObject);
var a,b,c:integer;
begin
a:=strtoint(edit1.text);
a:=a*3600000;
b:=strtoint(edit2.text);
b:=b*60000 ;
c:=strtoint(edit3.text);
c:=c*1000;

progressbar1.Max:=a+b+c;
progressbar1.min:=0;
progressbar1.Step:=1 ;      //1
 progressbar1.Stepit;
  if progressbar1.Position = progressbar1.max then  begin
timer3.Enabled:=false;






procedure TForm1.Timer2Timer(Sender: TObject);
var hh,mm,ss,ms:word; timetoend:TDateTime;
begin

  timetoend:=endtime-Now;
   if timetoend<0 then timetoend:=0;
   DecodeTime(timetoend,hh,mm,ss,ms);
   Edit1.Text:=IntToStr(hh);
   Edit2.Text:=IntToStr(mm);
   Edit3.Text:=IntToStr(ss);
   if timetoend>0 then exit;
   Timer2.enabled:=false;


mfg

[edit=Matze][delphi]-Tags eingefügt. Zukünftig bitte selbst daran denken. MfG, Matze[/edit]

lbccaleb 21. Nov 2009 09:12

Re: progressbar läuft nicht synchron mit
 
Du könntest es mit
Delphi-Quellcode:
Application.ProcessMessages
versuchen! Und schaue dir unbedingt an, wie man Quellcode formatiert. Ist schon nicht schlecht wenn du dort noch durchsiehst oO

SirThornberry 21. Nov 2009 10:26

Re: progressbar läuft nicht synchron mit
 
Ehrlich gesagt weiß ich immer noch nicht was funktioniert und was nicht funktioniert. Nur der Programmierer weiß was funktioniert und was tatsächlich passiert. Wenn uns diese beiden Dinge verraten werden können wir dann eventuell auch am Quelltext erkennen wodurch der Unterschied zwischen Istzustand und Sollzustand zustande kommt.

patti 21. Nov 2009 11:43

Re: progressbar läuft nicht synchron mit
 
Kann es sein, dass du Windows Vista benutzt? Da läuft die Animation der Progressbar nämlich verzögert ab.

Edit: Kuck mal hier: Thread in der DP

karoglan 21. Nov 2009 12:41

Re: progressbar läuft nicht synchron mit
 
mit Application.ProcessMessages funktionierts lider auch nicht


ja ich benutze vista und delphi2010 schulversion-->also kann man dafür nichts machen


mfg

patti 21. Nov 2009 13:18

Re: progressbar läuft nicht synchron mit
 
Zitat:

Zitat von karoglan
ja ich benutze vista und delphi2010 schulversion-->also kann man dafür nichts machen

:?:
Hast du dir den Link, den ich dir oben gepostet habe, mal angeschaut? Bei Post #4 findest du einen Workaround für das Problem, evtl. hilft das ja.

MFG

alzaimar 21. Nov 2009 14:23

Re: progressbar läuft nicht synchron mit
 
Delphi-Quellcode:
procedure TForm1.Timer3Timer(Sender: TObject);
Begin
...
  progressbar1.Max:=a+b+c;
...
  progressbar1.Step:=1 ;      //1  <<<<<< jedesmal fängt die Progressbar bei 1 an
  progressbar1.Stepit;
  if progressbar1.Position = progressbar1.max then begin // DAS TRIFFT NIE ZU !!! (außer a+b+c = 1)
...

karoglan 21. Nov 2009 16:02

Re: progressbar läuft nicht synchron mit
 
Zitat:

Zitat von alzaimar
Delphi-Quellcode:
procedure TForm1.Timer3Timer(Sender: TObject);
Begin
...
  progressbar1.Max:=a+b+c;
...
  progressbar1.Step:=1 ;      //1  <<<<<< jedesmal fängt die Progressbar bei 1 an
  progressbar1.Stepit;
  if progressbar1.Position = progressbar1.max then begin // DAS TRIFFT NIE ZU !!! (außer a+b+c = 1)-->wenn ich das nicht mache passiert bei mir beim progressbar nichts
...


problem mit pattis hilfe gelöst danke :cheers:


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