AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problemme mit FormKeyDown

Ein Thema von ferby · begonnen am 25. Dez 2005 · letzter Beitrag vom 15. Nov 2011
 
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#4

Re: Problemme mit FormKeyDown

  Alt 3. Jan 2006, 16:50
Hallo,

also ich habe das alles jetzt doch mit einen Timer gemacht und es geht.....

die Procedure mit der ich mein Schiff bewege schaut nun so aus:

Delphi-Quellcode:
procedure TForm2.timer_schiffTimer(Sender: TObject);
begin
  // Bewegen
  if (GetAsyncKeyState(VK_UP) <> 0) and (img_schiff.top>20) then img_schiff.Top:=img_schiff.Top-ges;
  if (GetAsyncKeyState(VK_DOWN) <> 0) and (img_schiff.top<600) then img_schiff.Top:=img_schiff.Top+ges;
  if (GetAsyncKeyState(VK_LEFT) <> 0) and (img_schiff.left>20) then img_schiff.Left:=img_schiff.Left-ges;
  if (GetAsyncKeyState(VK_RIGHT) <> 0) and (img_schiff.left<950) then img_schiff.Left:=img_schiff.Left+ges;
end;

Das Schießen konnte ich nicht auch in den Timer nehmen, der Grund: Wenn der Anwender einmal kurz auf die Taste drückt werden gleich 5-1 Schüsse ausgelößt. (Weil das Intervall des Timers so klein ist, aber das muss so klein sein um das Schiff zu bewegen)

Deshalb habe ich jetzt den Schuss in das FormKeyDown Ereigniss geschrieben

Delphi-Quellcode:
procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  // Schießen
  if key=VK_SPACE then new_schuss;
end;
Wenn ich eine Pfeiltaste gedrückt halte und auf die Leertaste drücke dann funktioniert alles so wie ich will: Das Raumschiff bewegt sich und schießt gleichzeitiig.

Wenn ich zwei Pfeiltasten drücke dann bewegt sich das Raumschiff schräg.

Jetzt das komische an der Sache: Halte ich zwei Pfeiltasten gedrückt und drücke die Leertaste dann wird die Procedure new_schuss nur manchmal ausgelößt und zwar nur wenn ich die Obere und Rechte Pfeiltaste oder die Untere und Linke Pfeiltaste gedrückt halte.

Wenn ich aber die Obere und Linke Pfeiltaste oder die Untere und die Rechte gedrückt halte und dann die Leertaste drücke dann wird new_schuss nicht ausgelößt... kann mir das wer erklären?
FormKEyDown wird beim drücken der Leertaste ausgelößt, das habe ich schon ausproiert, aber key=VK_SPACE geht nicht.....

Ich bin Ratlos....



Ferby
  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 05:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz