Einzelnen Beitrag anzeigen

daNiii

Registriert seit: 10. Nov 2008
98 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Timer in einer Schleife!!

  Alt 20. Feb 2009, 14:38
Hi!
Danke für eure Hilfe. Leider konnte mir aber keiner bei meinem Problem helfen.
Meinen aktuellen Programmiercode habe ich unten angeführt.
Info: bei meinem Programm handelt es sich um einen Vokabeltrainer.
Problem: Der Timer funktioniert nicht (das Programm läuft durch ohne zu halten)
Kann mir bitte jemand helfen.
Oder mir erklären wie ein Timer genau funktioniert!
Was genau bewirkt der Befehl: Timer.enabled:= true;?
Vielen DAnk im Voraus.



Delphi-Quellcode:
procedure TForm1.Fragestellung();
begin

Fragencounter:= Fragencounter +1;
lb_Fragenzahl.Caption:= inttostr(Fragencounter) + ':' + inttostr(Fragenanzahl);
lb_blue.Visible:= true;
      VZufallszahl := trunc(random(Vokabelcounter) + 1);
        randomize;

 adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.Add('Select * from Englisch where '+inttostr(VZufallszahl)+'= VID');
adoquery1.Open;
while not adoquery1.eof do begin
 Deutsch:= adoquery1.FieldValues['Deutsch'];
 Fremdsprache:= adoquery1.FieldValues['Fremdsprache'];

  adoquery1.next;
  end;
  adoquery1.close;

       timer1.interval:= 1000;
    timer1.Enabled:= true;


  starten();

end;


  procedure TForm1.starten();
  begin
   if Fragencounter < 20 then begin
   Fragestellung();
  end else begin
  timer1.Enabled:= false;
      showmessage('Das Spiel ist beendet');
lb_green.Caption:= '';
lb_blue.Caption:= '';
  end;
  end;


procedure TForm1.Start1Click(Sender: TObject);
begin
        Fragencounter:= 0;

         Fragestellung();

end;


procedure TForm1.FormShow(Sender: TObject);
begin

  Fragenanzahl:= 20;
  Zeit:= 10000 ;

end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
                // Warten auf die Lösung
    Ed_Loesung.Visible:= false;
    //Richtig oder Falsch
    if Ed_Loesung.Text = lb_green.caption then
    begin
    RoderF.Font.Color:= clgreen;
    RoderF.Caption:= 'Richtig!!!';
    end else begin
     RoderF.Font.Color:= clred;
     RoderF.Caption:= 'Leider falsch!';
    end;
    lb_green.Visible:= true;

  if mED.checked=true then begin
     lb_blue.Caption:= Fremdsprache;
     lb_green.Caption:= Deutsch;
     end else begin
     lb_blue.Caption:= Deutsch;
     lb_green.Caption:= Fremdsprache;
     end;

      sleep(300);
  //Warten bis zur nächsten Übung
 lb_green.Visible:= false;
 Ed_Loesung.Visible:= true;
end;
  Mit Zitat antworten Zitat