Das problem ist das,das programm sich nicht "wiederholt" nachdem timer1 und timer2 einmal ausgeführt wurden stopt das programm...
if timer2.enabled = false then timer1.enabled:=true; //geht nicht .____.
<---Mein versuch den loop zu wiederholen wen er einmal ausgeführt wurde.
Die Timer laufen grundsätzlich solange, bis sie gestoppt werden.
Code:
Stopp-Bedingungen
Timer 1: shape1.left = 150
Timer 2: shape1.left = 0
Untersuchen wir mal Timer1.
Annahme Shape.Left ist zu Beginn "0". Somit müsste der Timer1 genau 5x ausgeführt werden und danach stoppen.
In diesem Zusammenhang wäre es besser für die Abbruchbedingung ">= 150" einzusetzen.
Aber wie wird der Timer1 wieder gestartet? (gilt auch für Timer2)
Timer2:
Die Zeile
Delphi-Quellcode:
if timer1.enabled
then begin
macht irgendwie keinen Sinn... ebenso
timer2.interval := 100;
Delphi-Quellcode:
procedure tform1.timer1timer(sender: Tobject);
begin
if shape1.left >= 0
then begin
timer1.interval := 100;
shape1.left := shape1.left + 30;
if shape1.left = 150
then begin
timer1.enabled := false;
timer2.enabled := true;
end;
end;
end;
procedure tform1.timer2timer(sender: Tobject);
begin
if timer1.enabled
then begin
timer2.interval := 100;
shape1.left := shape1.left - 30;
if shape1.left <= 0
then begin
timer1.enabled := true;
timer2.enabled := false;
end;
end;
end;
end.