AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Problem bei VK_LEFT,...
Thema durchsuchen
Ansicht
Themen-Optionen

Problem bei VK_LEFT,...

Ein Thema von MiKeNNtKoiNer · begonnen am 11. Feb 2009 · letzter Beitrag vom 11. Feb 2009
Thema geschlossen
MiKeNNtKoiNer

Registriert seit: 27. Jan 2009
18 Beiträge
 
#1

Problem bei VK_LEFT,...

  Alt 11. Feb 2009, 17:54
Hallo Leute

Danke erstmal, dass ihr euch überhaupt mit meinem Problem beschäftigt.

Ich habe ein Spiel programmiert in dem ein Panel ein anderes Panel jagt. Das Panel, das gejagt wird, wird durch Zufallsvariabeln gelenkt. Das Panel, das vom Spieler gelenkt wird, wird bisher durch Buttons gelenkt oder mit w;a;s;d gelenkt. Nun wollte ich auch die Pfeiltasten einbeziehen. Hierfür mein Quelltext:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
If (key = VK_UP)
Then
  Begin
    Timer1.Enabled:=true;
    Timer19.Enabled:=true;
      If Radiobutton1.Checked=true
      Then
        Begin
          Timer2.Enabled:=true;
          Timer3.Enabled:=false;
          Timer4.Enabled:=false;
          Timer5.Enabled:=false;
        End;
      If Radiobutton2.Checked=true
      Then
        Begin
          Timer7.Enabled:=true;
          Timer8.Enabled:=false;
          Timer9.Enabled:=false;
          Timer10.Enabled:=false;
        End;
      If Radiobutton3.Checked=true
      Then
        Begin
          Timer11.Enabled:=true;
          Timer12.Enabled:=false;
          Timer13.Enabled:=false;
          Timer14.Enabled:=false;
        End;
      If Radiobutton4.Checked=true
      Then
        Begin
          Timer15.Enabled:=true;
          Timer16.Enabled:=false;
          Timer17.Enabled:=false;
          Timer18.Enabled:=false;
        End;
  End;
If (key = VK_DOWN)
Then
  Begin
    Timer1.Enabled:=true;
    Timer19.Enabled:=true;
      If Radiobutton1.Checked=true
      Then
        Begin
          Timer3.Enabled:=true;
          Timer2.Enabled:=false;
          Timer4.Enabled:=false;
          Timer5.Enabled:=false;
        End;
      If Radiobutton2.Checked=true
      Then
        Begin
          Timer8.Enabled:=true;
          Timer7.Enabled:=false;
          Timer9.Enabled:=false;
          Timer10.Enabled:=false;
        End;
      If Radiobutton3.Checked=true
      Then
        Begin
          Timer12.Enabled:=true;
          Timer11.Enabled:=false;
          Timer13.Enabled:=false;
          Timer14.Enabled:=false;
        End;
      If Radiobutton4.Checked=true
      Then
        Begin
          Timer16.Enabled:=true;
          Timer15.Enabled:=false;
          Timer17.Enabled:=false;
          Timer18.Enabled:=false;
        End;
  End;
If (key = VK_LEFT)
Then
  Begin
    Timer1.Enabled:=true;
    Timer19.Enabled:=true;
      If Radiobutton1.Checked=true
      Then
        Begin
          Timer4.Enabled:=true;
          Timer2.Enabled:=false;
          Timer3.Enabled:=false;
          Timer5.Enabled:=false;
        End;
      If Radiobutton2.Checked=true
      Then
        Begin
          Timer9.Enabled:=true;
          Timer7.Enabled:=false;
          Timer8.Enabled:=false;
          Timer10.Enabled:=false;
        End;
      If Radiobutton3.Checked=true
      Then
        Begin
          Timer13.Enabled:=true;
          Timer11.Enabled:=false;
          Timer12.Enabled:=false;
          Timer14.Enabled:=false;
        End;
      If Radiobutton4.Checked=true
      Then
        Begin
          Timer17.Enabled:=true;
          Timer16.Enabled:=false;
          Timer15.Enabled:=false;
          Timer18.Enabled:=false;
      End;
  End;
If (key = VK_RIGHT)
Then
  Begin
    Timer1.Enabled:=true;
    Timer19.Enabled:=true;
      If Radiobutton1.Checked=true
      Then
        Begin
          Timer5.Enabled:=true;
          Timer2.Enabled:=false;
          Timer3.Enabled:=false;
          Timer4.Enabled:=false;
        End;
      If Radiobutton2.Checked=true
      Then
        Begin
          Timer10.Enabled:=true;
          Timer7.Enabled:=false;
          Timer8.Enabled:=false;
          Timer9.Enabled:=false;
        End;
      If Radiobutton3.Checked=true
      Then
        Begin
          Timer14.Enabled:=true;
          Timer11.Enabled:=false;
          Timer12.Enabled:=false;
          Timer13.Enabled:=false;
        End;
      If Radiobutton4.Checked=true
      Then
        Begin
          Timer18.Enabled:=true;
          Timer16.Enabled:=false;
          Timer15.Enabled:=false;
          Timer17.Enabled:=false;
      End;
  End;
If (key = VK_SPACE)
Then
  Begin
      Timer1.Enabled:=false;
      Timer2.Enabled:=false;
      Timer3.Enabled:=false;
      Timer4.Enabled:=false;
      Timer5.Enabled:=false;
      Timer7.Enabled:=false;
      Timer8.Enabled:=false;
      Timer9.Enabled:=false;
      Timer10.Enabled:=false;
      Timer11.Enabled:=false;
      Timer12.Enabled:=false;
      Timer13.Enabled:=false;
      Timer14.Enabled:=false;
      Timer18.Enabled:=false;
      Timer16.Enabled:=false;
      Timer17.Enabled:=false;
      Timer15.Enabled:=false;
      Timer19.Enabled:=false;
  End;
end;
Bitte keine Kommentare zu den vielen Timern ich hätte es zwar auch mit If und Then und Else machen können, aber so schien es mir zunächst übersichtlicher. Was sich jedoch wie man sieht als falsch herausstellte.

Nun zu meinem eigentlichen Problem:
Wenn ich mein Spiel starte und im Hauptmenü einen Schwierigkeitsgrad auswähle, dann den Start-Button drücke reagiert das Panel nicht sofort auf die Pfeiltasten, sondern erst wenn ich durch das beständige einschlagen auf die Pfeiltasten die Auswahl; die nach dem Startklick natürlich auf dem Start-Button ist; auf das Edit-Feld meiner Stoppuhr ändere. Selbst wenn ich Strg oder Shift gedückt halte muss Die auswahl zunächst auf das Edit-Feld springen.
Weiß irgendjemand wie ich dieses Problem beheben kann?

Mfg
Hagen

P.S.: Kann man verhindern, dass etwas in ein Edit-Feld eingegeben kann oder muss ich dafür eine Listbox beispielsweis benutzen?
 
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem bei VK_LEFT,...

  Alt 11. Feb 2009, 18:06
Warum zwei Themen zu gleichen Problem? Hier gehts weiter: http://www.delphipraxis.net/internal...t.php?t=151933
Michael
Ein Teil meines Codes würde euch verunsichern.
 
Thema geschlossen


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 01:31 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