Einzelnen Beitrag anzeigen

tabl

Registriert seit: 27. Apr 2009
Ort: 31582
19 Beiträge
 
Delphi 7 Personal
 
#1

taste abfragen ohne onkeypress etc und label sichtbar machen

  Alt 13. Mai 2009, 18:02
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^^
  Mit Zitat antworten Zitat