Processbar i odliczanie czasu ponownego uruchomienia pliku??

0

Czytalem duzo tematow zwiazanych z tym problemem, ale nic konkretnego sie nie dowiedzialem.
Mam taki programik ktory restartuje plik co okreslony czas. Chcialbym by ten czas jaki pozostal do ponownego uruchomienia byl wyswietlany w processbar. Jak moze wygladac taki skrypt??

Chcialby go wykorzystac do tego:

begin
Timer1.Enabled:=True;
b:=StrToInt(Edit1.Text);
begin
if ComboBox1.text='Min'
then
begin
Timer1.Interval := ( b * 60000 ); //Dla minut
end
else
begin
Timer1.Interval := ( b * 1000 ); //Dla sekund
end;
end;
end;

0

dodaj drugi timer, w jego onTimer daj ProgresBar.Position := ProgresBar.Position + 1; a to zmień tak:

begin
   Timer1.Enabled:=True;
     b:=StrToInt(Edit1.Text);
     begin
       if ComboBox1.text='Min'
       then
         begin
           Timer1.Interval := ( b * 60000 ); //Dla minut
         end
       else
         begin
           Timer1.Interval := ( b * 1000 ); //Dla sekund
         end;
     end;
    ProgressBar.Position := 0;
    ProgressBar.Max := Timer1.Interval div Timer2.Interval;
    Timer2.Enable := True;
  end;
0

Dzieki, chodzi :)

A jak zrobic by po restarcie pliku ProgressBar ruszył od nowa??

Bo teraz jest tak: dam na strat idzie np. 5sek, restart pliku, idzie kolejne 5sek a progressbar jest pelny, a powinien od nowa zaczac??

0

to to

ProgressBar.Position := 0;
    ProgressBar.Max := Timer1.Interval div Timer2.Interval;
    Timer2.Enable := True;

daj pod button, czy co tam masz, co Ci restartuje plik

0

Ok dalem i chodzi :)

a jak zrobic by byl bardziej dokladny, teraz jest tak: np jak dam na 10sek to zaczyna jest na srodku i pelny, by szlo po jednej kratce??

0
MaRWiD napisał(a)

Ok dalem i chodzi :)

a jak zrobic by byl bardziej dokladny, teraz jest tak: np jak dam na 10sek to zaczyna jest na srodku i pelny, by szlo po jednej kratce??

myśleć, myśleć a nie przepisywać w ciemno cudzego kodu! Zmniejsz Timer2.Interval na np. 100

Zauważ, że ProgressBar.Max = Timer1.Interval div Timer2.Interval, czyli jak masz Timer1.Interval = 10000 (10 sekund) a Timer2.Interval = 1000 (1 sekunda, standardowo na tyle się ustala) to max masz 10000 div 1000, czyli 10

0

Dzieki, pomoglo :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1