hallo
ich will ein prog schreiben was eig zimlich simpel sein müsste: durch zufalls soll eine pfeiltaste ausgewählt werden und über sichtbar werden eines labels soll die taste angezeigt werden. anschließend soll gewartet werden bis eine taste gedrückt wurde, wenn es die richtige war soll soll ein zähler erhöt werden und die nächste taste ausgewählt werden. vorher soll jedoch das alte label wieder unsichbar werden.
mein prob is jetzt : das prog is extrem absturzgefährded (nehm an es ligt an der schleife die zimlich oft wiederholt wird) und er zeigt das label nicht an, wenn ich jedoch das wieder unsichtbar und die tastenabfrage ausschalte/einklamer wird das label angezeigt, wenn ich die tastenabfrage drine hab dann zeigt er mir das label erst an wenn ich eine taste(die die schleife beended) gedrückt hab.
die tastenabfrage hab ich aus den tread
http://www.delphipraxis.net/internal...ct.php?t=33683
wie kriege ich das program so hin, das es funcs und das es nicht mehr so leicht abstürtz.
Delphi-Quellcode:
var
score : integer;
function IsKeyDown(vk : Integer) : Boolean;
begin
Result:=(GetAsyncKeyState(vk)<0);
end;
function keydow : integer;
begin
if isKeyDown(vk_up) then result := 0 ;
if isKeyDown(vk_down) then result :=1;
if isKeyDown(vk_left) then result :=2;
if isKeyDown(vk_right) then result :=3;
if iskeydown(vk_end) then result := 4;
if not sKeyDown(vk_up) or sKeyDown(vk_down) or sKeyDown(vk_left) or sKeyDown(vk_right) or skeydown(vk_end) then result := 5;
end;
procedure TForm2.butstartClick(Sender: TObject);
var
rich,taste:integer;
begin
butstart.Enabled := false;
score := 0;
label5.Caption := '0';
timer1.Enabled := true;
taste := 5;
rich := random(4);
label6.Caption := inttostr(rich);
case rich of
0 : form2.Label1.Visible := true;
1 : form2.Label2.Visible := true;
2 : form2.Label3.Visible := true;
3 : form2.Label4.Visible := true;
end;
while taste> 3 do
begin
taste := keydow;
label7.Caption := inttostr(taste);
if rich = taste then inc(score);
end;
butstart.Enabled := true;
form2.Label5.Caption := inttostr(score);
form2.Label1.Visible := false;
form2.Label2.Visible := false;
form2.Label3.Visible := false;
form2.Label4.Visible := false;
end;
end.
ps ich hab kaum ahnung von delphi^^