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;