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?