![]() |
2 Tasten gleichzeitig!!!
Hallo,
ich möchte für ein Autorennspiel-Programm, dass 2 Tasten gleichzeitig gedrückt und erkannt werden können. So zu sagen z.B. vk_up und vk_left. Wie ich die Tastatur anspreche weiß ich ja. Aber 2 Tasten gleichzeitig? Das muss doch gehen, da man bei jedem Rennspiel diese Funktion nutzt. Kann mir jemand biiiittttte helfen? Ich komme wirklich mit dem was in den Foren steht nicht weiter. :wall: |
Re: 2 Tasten gleichzeitig!!!
|
Re: 2 Tasten gleichzeitig!!!
:( Ich verstehe das nicht.
Sorry Kannst du mir helfen? |
Re: 2 Tasten gleichzeitig!!!
Hier wird es vielleicht deutlicher:
![]() |
Re: 2 Tasten gleichzeitig!!!
oder notfalls in Form.OnKeyDown die Tasten merken und in Form.OnKeyUp wieder vergessen.
Delphi-Quellcode:
Var TasteA, TasteB: Boolean;
Procedure TForm1.FormKeyDown(Sender: TObject; Var Key: Word; Shift: TShiftState); Begin If Key = 'a' Then TasteA := True; If Key = 'b' Then TasteB := True; End; Procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); Begin If Key = 'a' Then TasteA := False; If Key = 'b' Then TasteB := False; End; ... If TasteA Then {was machen, wenn Taste A gedrückt ist} |
Re: 2 Tasten gleichzeitig!!!
Beispiel.
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if GetAsyncKeystate(VK_LEFT) < 0 then Shape1.Left:=Shape1.Left-2; if GetAsyncKeystate(VK_UP) < 0 then Shape1.Top:=Shape1.Top-2; if GetAsyncKeystate(VK_RIGHT) < 0 then Shape1.Left:=Shape1.Left+2; if GetAsyncKeystate(VK_DOWN) < 0 then Shape1.Top:=Shape1.Top+2; end; |
Re: 2 Tasten gleichzeitig!!!
Machs so
Delphi-Quellcode:
TForm1 = class..
public ... Keys: Array[Byte] of Boolean; procedure RefreshKeys; end; -- procedure TForm1.RefreshKeys(); var i: Integer; begin for i := 0 to $FF do Keys[i] := GetAsyncKeyState( i ) <> 0; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin RefreshKeys; end; procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin RefreshKeys; end; |
Re: 2 Tasten gleichzeitig!!!
Danke für die Zahlreichen Antworten,
hat mir sehr geholfen. LG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 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