Einzelnen Beitrag anzeigen

Hybrid666

Registriert seit: 15. Jul 2006
Ort: Erster Stock
250 Beiträge
 
Delphi 7 Personal
 
#7

Re: Timer in einer Schleife!!

  Alt 18. Feb 2009, 13:44
SERVUS,


Delphi-Quellcode:
//globale var:
var
  Counter : Integer; // wenn ein neues spiel gestartet wird, bitte Counter auf 1 initialisieren, das schreib ich hier net in den code *trivial*
procedure TForm1.Start1Click(Sender: TObject);


var
I: integer;
begin
    timer1.interval := 10000; // zeit für den nutzer, das editfeld zu bearbeiten (in ms)
    Fragestellung();
    timer1.enabled := true; // timer1 sollte bis zum spielstart nicht enabled sein! erst hier wird er gestartet!
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
    inc (counter) // den counter um 1 erhöhen

    // hier ist dein code aus der anderen procedure
     Edit1.Visible:= false;
    if Edit1.Text = Label1.caption then
    begin
    RoderF.Font.Color:= clgreen;
    RoderF.Caption:= 'Richtig!!!';
    end else begin
     RoderF.Font.Color:= clred;
     RoderF.Caption:= 'Leider falsch!';
    end;
    Label1.Visible:= true;
   
    Label1.Visible:= false;
    Label2.Visible:= true;
    if counter < 20 then // wurden weniger als 20 fragen gestellt, weitermachen!
      Fragestellung ()
    else //wurden schon 20 gestellt, dann das spiel beenden (auch wieder ein stück deines codes aus der procedure weiter oben)
    begin
showmessage('Das Spiel ist beendet');
lb_green.Caption:= '';
lb_blue.Caption:= '';
timer1.enabled := false; // timer stoppen, da spiel beendet
    end;
       

end;
das wäre jetzt mal mein lösungsansatz, für fehler entschuldige ich mich ma, ich hab das grade zusammengeschustert sogut es ging (ich weiß der code ist bescheiden formattiert, aber wie mans bekommt gibt mans auch wieder ab )

Hoffe das hilft dir, viel spaß!
  Mit Zitat antworten Zitat