Thema: Weiterlernen

Einzelnen Beitrag anzeigen

Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
654 Beiträge
 
Delphi 12 Athens
 
#12

AW: Weiterlernen

  Alt 14. Jul 2016, 00:55
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.
Roland

Geändert von blawen (14. Jul 2016 um 01:12 Uhr)
  Mit Zitat antworten Zitat