blackheart hatte im Prinzip Recht, ich habs einfach so reingeschrieben und nicht im
OI eingestellt - na ja, bin halt nochn Delphi-Noob
aber irgendwie klappt das doch nicht ganz so recht, ich wollt nen Reaktionstest schreiben, der auf Mausklick oder Tastendruck reagiert - aber ich hab 4 mögliche ergebnisse. Ich hab den Quellcode/ .exe mal angefügt, damit ihr ne ungefähre Vorstellung davon habt.
PS: auch für anderweitige Verbesserungsvorschläge bin ich gerne offen
Delphi-Quellcode:
procedure TForm1.Panel1Click(Sender: TObject);
var zw: integer;
begin
timer1.Enabled:=false;
zw:=random(4);
CASE zw OF
0: labelchange.Color:=clred;
1: labelchange.Color:=clblue;
2: labelchange.Color:=cllime;
3: labelchange.Color:=clyellow;end;
time := Now;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
labelchange.Color:=clsilver;
randomize;
timer1.Interval:= 1000 + random(4000);
timer1.Enabled:=true;
end;
procedure TForm1.Label1Click(Sender: TObject);
begin
if (not Timer1.Enabled) and (time <> 0) and (labelchange.color=label1.color) then
begin
labelmillisek.caption:=FloatToStr(floor(MilliSecondSpan(time, Now)));
IF StrToInt(labelmillisek.caption) < 1000 THEN
gauge1.Progress:=100-(floor(StrToInt(labelmillisek.Caption)/10))
ELSE gauge1.Progress:=0;
timer2.enabled:=true;
time := 0;
end
else
IF not(labelchange.color=label1.color) THEN showmessage('Falsche Farbe!!!')
ELSE
IF timer1.enabled=true THEN showmessage('Ein wenig früh, oder?')
ELSE showmessage('Bitte erst mal starten!');
end;
procedure TForm1.Label2Click(Sender: TObject);
begin
if (not Timer1.Enabled) and (time <> 0) and (labelchange.color=label2.color) then
begin
labelmillisek.caption:=FloatToStr(floor(MilliSecondSpan(time, Now)));
IF StrToInt(labelmillisek.caption) < 1000 THEN
gauge1.Progress:=100-(floor(StrToInt(labelmillisek.Caption)/10))
ELSE gauge1.Progress:=0;
timer2.enabled:=true;
time := 0;
end
else
IF not(labelchange.color=label2.color) THEN showmessage('Falsche Farbe!!!')
ELSE
IF timer1.enabled=true THEN showmessage('Ein wenig früh, oder?')
ELSE showmessage('Bitte erst mal starten!');
end;
procedure TForm1.Label3Click(Sender: TObject);
begin
if (not Timer1.Enabled) and (time <> 0) and (labelchange.color=label3.color) then
begin
labelmillisek.caption:=FloatToStr(floor(MilliSecondSpan(time, Now)));
IF StrToInt(labelmillisek.caption) < 1000 THEN
gauge1.Progress:=100-(floor(StrToInt(labelmillisek.Caption)/10))
ELSE gauge1.Progress:=0;
timer2.enabled:=true;
time := 0;
end
else
IF not(labelchange.color=label3.color) THEN showmessage('Falsche Farbe!!!')
ELSE
IF timer1.enabled=true THEN showmessage('Ein wenig früh, oder?')
ELSE showmessage('Bitte erst mal starten!');
end;
procedure TForm1.Label4Click(Sender: TObject);
begin
if (not Timer1.Enabled) and (time <> 0) and (labelchange.color=label4.color) then
begin
labelmillisek.caption:=FloatToStr(floor(MilliSecondSpan(time, Now)));
IF StrToInt(labelmillisek.caption) < 1000 THEN
gauge1.Progress:=100-(floor(StrToInt(labelmillisek.Caption)/10))
ELSE gauge1.Progress:=0;
timer2.enabled:=true;
time := 0;
end
else
IF not(labelchange.color=label4.color) THEN showmessage('Falsche Farbe!!!')
ELSE
IF timer1.enabled=true THEN showmessage('Ein wenig früh, oder?')
ELSE showmessage('Bitte erst mal starten!');
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
gauge1.Progress:=0;
labelchange.color:=clsilver;
timer2.enabled:=false;
end;
procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
CASE key OF
81: TForm1.Label1Click(Sender: TObject);
65: TForm1.Label2Click(Sender: TObject);
87: TForm1.Label3Click(Sender: TObject);
83: TForm1.Label4Click(Sender: TObject);
end;