Also doch, wie ich es schon in meiner ersten Antwort gesagt habe: die beiden Timer aktivieren und deaktivieren sich gegenseitig.
Delphi-Quellcode:
// vereinfacht: die Intervalle bleiben konstant
TimerReload.Interval = 30000;
TimerNextTab.Interval = 10000;
// Anzeige weiterschalten:
procedure MyForm.TimerNextTabOnTimer(Sender: TObject);
begin
if Anzeige.TabIndex = 2
then begin
Anzeige.TabIndex := 0;
// das Weiterschalten deaktivieren, damit erst einmal eingelesen werden kann
TimerNextTab.Enabled := false;
end
else begin
Anzeige.TabIndex := Anzeige.TabIndex + 1;
end;
end;
// Daten neu einlesen
procedure MyForm.TimerReloadOnTimer(Sender: TObject);
begin
if Anzeige.TabIndex = 0
then begin
DatenNeuEinlesen();
// das Weiterschalten aktivieren
TimerNextTab.Enabled := true;
end;
end;
Das Zusammenspiel könnte in der Praxis vereinfacht werden. Eigentlich brauchst Du den TimerReload überhaupt nicht, sondern liest die Daten einfach dann ein, wenn er wieder auf TabIndex 0 umgeschaltet hat. Aber das ist ein anderes Thema.
Gruß Jürgen