![]() |
Delphi-Version: 5
Figur und Button
Hallo,
ich habe eine letzte Frage: ich habe eine Figur die ich mit den Pfeiltasten steuere und mehrere Buttons. Solange diesen Buttons jedoch da sind kann ich meine Figur nicht bewegen. Stattdessen kann man dann mit den Pfeiltasten die Markierung der Buttons ändern (also wenn ich rechts drücke, dann wird der rechte Markiert, so dass man zur Bestätigung nur noch Enter drücken muss). Wie kann ich das am leichtesten beheben? PS: meine figur bewegt sich über die Formulare/Funktionen onkeydown und onkeyup Grüße |
AW: Figur und Button
Probier mal, ob es dein Problem behebt, wenn du die Eigenschaft KeyPreview deines Formulars auf true stellst ;)
|
AW: Figur und Button
und in diesen Proceduren evtl noch am Schluss key:=0 einfügen.
2. Möglichkeit, die Tasten WASD benutzen, wie sie ja in den meisten Spielen heute benutzt werden. Gruss alfold |
AW: Figur und Button
also keypreview auf true zu stellen hat leider nichts bewirkt
und @alfold meinst du das hier?
Delphi-Quellcode:
habt ihr vielleicht sonst noch Vorschläge?
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if key = vk_up then hoch:= 0; if key = vk_down then runter:=0; if key = vk_left then links :=0; if key = vk_right then rechts :=0; end; |
AW: Figur und Button
ne so nicht
Delphi-Quellcode:
Gruss alfold
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState); begin //hier deine keyabfragen ..... ..... ..... // und zum schluss key:=0; end; |
AW: Figur und Button
hat leider auch nicht funktioniert.
Woran könnte es sonst liegen? Oder hat jemand irgendeine andere Idee? Grüße |
AW: Figur und Button
Hi,
du musst verhindern, dass der Focus zum Button kommt bzw. bleibt. Ich habe das mal irgendwo gebraucht und dann über ein unsichtbares Edit gelöst:
Delphi-Quellcode:
[EDIT]Alternative wäre TSpeedButton anstatt TButton...[/EDIT]
type
TfrmMain = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormShow(Sender: TObject); private FEdit: TEdit; procedure LockFocus; procedure CreateFocusEdit; end; var frmMain: TfrmMain; implementation {$R *.dfm} procedure TfrmMain.FormCreate(Sender: TObject); begin CreateFocusEdit; end; procedure TfrmMain.Button1Click(Sender: TObject); begin MessageDlg('Button 1', mtWarning, [mbOK], 0); LockFocus; end; procedure TfrmMain.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin MessageDlg('KeyUp', mtInformation, [mbOK], 0); Key := 0; end; procedure TfrmMain.LockFocus; begin if FEdit.CanFocus then FEdit.SetFocus; end; procedure TfrmMain.CreateFocusEdit; begin FEdit := TEdit.Create(Self); FEdit.Width := 0; FEdit.Height := 0; FEdit.Left := 0; FEdit.Top := 0; FEdit.Parent := Self; end; procedure TfrmMain.FormShow(Sender: TObject); begin LockFocus; end; ... Frank |
AW: Figur und Button
[OT] Mal ne andere Frage. Gibt es heute noch Spiele die mit den Kursortasten bedient werden?[/OT]
Alternativ währe ja WASD als Bewegungstasten zu nehmen:wink: Gruss alfold |
AW: Figur und Button
Ich mag die Cursortasten aber und ja, ich nutze sie sehr oft.
(für rechtshändige Einhandspieler sind diese auch noch sehr gut positioniert) PS: Die SuFu sagt: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:11 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