Einzelnen Beitrag anzeigen

MaToBe

Registriert seit: 2. Aug 2008
162 Beiträge
 
#1

Timer langsamer als Timer ?

  Alt 17. Nov 2008, 22:44
Hallo, ich bins mal wieder

Folgendes Problem:

Ich habe einen Timer, der zählt die Zeit, bis das nächste Bild angezeigt wird.
Ein zeiter Timer rechnet mit dieser Zeit und steuert die ProgressBar.

Timer 1 für die Bilder:
Delphi-Quellcode:
procedure TForm1.tZeitTimer(Sender: TObject);
var
  AuswahlBild : string;
  AuswahlNummer : integer;
begin
    repeat
        AuswahlNummer := Random(clbBilder.Count);
    until clbBilder.Checked[AuswahlNummer] = true;
    AuswahlBild := sgDaten.Cells[2,AuswahlNummer];
    ChangeWallpaper(AuswahlBild);
end;
Timer 2 für die ProgressBar:
Delphi-Quellcode:
procedure TForm1.tProgressBarTimer(Sender: TObject);
begin
   if pgbZeit.Position = pgbZeit.Max then
   begin
      p := 0;
      pgbZeit.Position := p;
   end
   else
      begin
         p := p + 100;
         pgbZeit.Position := p;
      end;
end;
Aufgerufen werden beite gleichzeitig hier:
Delphi-Quellcode:
procedure TForm1.btnStartClick(Sender: TObject);
begin
    if cbZeit.Checked = true then
    begin
         if edtZeit.Text <> 'then
         begin
            lbStatus.Caption := 'Aktiv';
            lbStatus.Font.Color := clLime;
            tZeit.Interval := (strtoint(edtZeit.Text)*1000);
            pgbZeit.Max := (strtoint(edtZeit.Text)*1000);
            p := 0;
            tProgressBar.Enabled := true;
            tZeit.Enabled := true
         end
         else ShowMessage ('Sie haben keine Zeit eingegeben.');
    end;
end;
Frage: Warum geschieht der Bildwechsel immer viel früher als das die ProgressBar am Ende ankommt?
  Mit Zitat antworten Zitat