Aaaahhh! Du willst
keinen zweiten Timer aktivieren, sondern einen
Timer ein weiteres Mal (ggf. mit anderen Werten) aufrufen. Dann hast Du zwei Sachen nicht verstanden, wie ein Timer arbeitet:
- Der Timer wird nicht "immer wieder" aufgerufen, bis er abgelaufen ist, sondern einmal (bzw. jedes Mal), wenn seine Gültigkeit endet.
- Solange Timer.Enabled = true gilt, wird er erneut aktiviert.
- Das Interval gibt an, nach welcher Zeit er abgelaufen ist.
- Mögliche Maßnahmen (bei Dir das Umschalten) werden genau zu diesem Zeitpunkt ausgeführt.
Deine if-Abfrage wäre also nur dann wahr, wenn das Interval auf 0/1 gesetzt würde.
Du musst also nach folgendem Schema vorgehen:
Delphi-Quellcode:
private NextTabTimer: TTimer;
// Startwert auf 5 Sekunden einstellen
NextTabTimer.Interval := 5000;
// Timer aktivieren, nachdem z.B. Daten eingelesen wurden
NextTabTimer.Enabled := true;
Anzeige.TabIndex := 0;
// umschalten nach 5 Sekunden
// weitere Seiten werden 10 Sekunden angezeigt
procedure MyForm.NextTabTimerOnTimer(Sender: TObject);
begin
NextTabTimer.Interval := 10000;
// nach der letzten Tab-Seite deaktivieren, sonst weiterschalten
if Anzeige.TabIndex = 4
then NextTabTimer.Enabled := false
else Anzeige.TabIndex := Anzeige.TabIndex + 1;
end;
Viel Erfolg! Jürgen