AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi taste abfragen ohne onkeypress etc und label sichtbar machen
Thema durchsuchen
Ansicht
Themen-Optionen

taste abfragen ohne onkeypress etc und label sichtbar machen

Ein Thema von tabl · begonnen am 13. Mai 2009 · letzter Beitrag vom 14. Mai 2009
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz