![]() |
Auf Pfeiltasten reagieren
Hallo Leute,
Bin gerade dabei ein Spiel zu proken welches auf die pfeiltasten (zum bewegen der grafik) reagieren soll. Nur leider funktioniert
Delphi-Quellcode:
nicht.
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin if Key = Ord('a') then ShowMessage('bla'); end; falls der obenstehende code total falsch is, dann bitte nicht beachten ;-) [edit=sakura] [delphi]-Tags gesetzt. Mfg, sakura[/edit] |
Re: Auf Pfeiltasten reagieren
Hier:
Delphi-Quellcode:
Musst das ganze einfach noch auf deine Bedürfnisse anpassen.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if key = vk_left then ShowMessage('Hallo'); end; :hi: |
Re: Auf Pfeiltasten reagieren
Ein Hallöle von
![]() Ja, mit FormKeyPress geht das nicht, aber in FormKeyUp oder FormKeyDown geht das. Siehe "OnKeyUp (Ereignis von TWinControl)" und "Virtuelle Tastencodes" in der OH. http://www.delphipraxis.net/images/common/divider.jpg ![]() ![]() ![]() |
Re: Auf Pfeiltasten reagieren
:hi:
nimm doch OnKeyDown :
Delphi-Quellcode:
, dann kannst du die
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if key = VK_UP then ... end; ![]() mfg Tobias |
Re: Auf Pfeiltasten reagieren
Ach ja, das andere geht natürlich auch nicht.
Zitat:
Delphi-Quellcode:
http://www.delphipraxis.net/images/common/divider.jpg
Procedure TForm1.FormKeyPress(Sender: TObject; Var Key: Char);
Begin If Key = 'a' Then ShowMessage('Das Kleine a wurde gedrückt'); End; ![]() ![]() ![]() |
Re: Auf Pfeiltasten reagieren
danke fuer die vielen antworten (man ging das schnell :-)
aber irgendwie will der bei mir nicht ?!
Code:
was mach ich falsch ?
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private-Deklarationen } public Procedure FormKeyPress(Sender: TObject; Var Key: Char); { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} Procedure TForm1.FormKeyPress(Sender: TObject; Var Key: Char); Begin If Key = 'a' Then ShowMessage('Das Kleine a wurde gedrückt'); End; end. :wall: |
Re: Auf Pfeiltasten reagieren
Moin Peter,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. Ich nehme mal an, dass Du nicht nur ein leeres Formular sondern auch noch einige sonstige Komponenten auf demselben hast. Dies hat zur Folge, dass der Tastendruck an die jeweilige Komponente, die den Tastaturfokus hat weitergeleitet wird, und im OnKeyPress des Formulares kommt es dann nicht mehr an. Um das OnKeyPress des Formulares trotzdem verwenden zu können, musst Du noch die Eigenschaft KeyPreview auf true setzen. |
Re: Auf Pfeiltasten reagieren
Falsche Stelle:
Code:
Tipp: Zum Erstellen des Ereignisses/der Prozedur einfach im OI in das leere Feld neben OnKeyPress klicken.
[b]type[/b]
TForm1 = [b]class[/b](TForm) [color=red][b]Procedure[/b] FormKeyPress(Sender: TObject; [b]Var[/b] Key: Char);[/color] [b]private[/b] { Private-Deklarationen } [b]public[/b] [s][b]Procedure[/b] FormKeyPress(Sender: TObject; Var Key: Char);[/s] { Public-Deklarationen } [b]end[/b]; Und auf Chris hören. http://www.delphipraxis.net/images/common/divider.jpg ![]() ![]() ![]() |
Re: Auf Pfeiltasten reagieren
ich danke euch!
manchmal hat man halt doch ein brett vorm kopf (oder 2 oder 3) ;-) also herzlichen dank! bis zum naechsten mal, Peter |
AW: Auf Pfeiltasten reagieren
Liste der Anhänge anzeigen (Anzahl: 1)
Entschuldigung, wenn ich jetzt noch mal diesen Eintrag von vor über 10 Jahren erweitern muss,
aber ich stehe hier grade vor einem mir unerklärlichen Problem: Ich hab alles wie erklärt abgeschrieben und bei mir startet das Programm auch, aber es passiert einfach nichts, wenn ich die belegte Taste drücke. (Ich habs schon mit verschieden Tasten versucht) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 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 by Thomas Breitkreuz