Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Auf Pfeiltasten reagieren (https://www.delphipraxis.net/12940-auf-pfeiltasten-reagieren.html)

Peter_Panther 7. Dez 2003 10:42


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:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = Ord('a') then ShowMessage('bla');
end;
nicht.

falls der obenstehende code total falsch is, dann bitte nicht beachten ;-)

[edit=sakura] [delphi]-Tags gesetzt. Mfg, sakura[/edit]

Dagon 7. Dez 2003 10:52

Re: Auf Pfeiltasten reagieren
 
Hier:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_left then ShowMessage('Hallo');
end;
Musst das ganze einfach noch auf deine Bedürfnisse anpassen.

:hi:

himitsu 7. Dez 2003 10:53

Re: Auf Pfeiltasten reagieren
 
Ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke.gif und herzlich willkommen im DP-Team.

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
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

Mirilin 7. Dez 2003 10:53

Re: Auf Pfeiltasten reagieren
 
:hi:

nimm doch OnKeyDown :
Delphi-Quellcode:
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_UP then
   ...
end;
, dann kannst du die Virtuellen Tastencodes brauchen...


mfg Tobias

himitsu 7. Dez 2003 10:58

Re: Auf Pfeiltasten reagieren
 
Ach ja, das andere geht natürlich auch nicht.

Zitat:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = Ord('a') then ShowMessage('bla');
end;
Key ist vom Typ Char, daher ist es so richtig:
Delphi-Quellcode:
Procedure TForm1.FormKeyPress(Sender: TObject; Var Key: Char);
  Begin
    If Key = 'a' Then ShowMessage('Das Kleine a wurde gedrückt');
  End;
http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

Peter_Panther 7. Dez 2003 11:09

Re: Auf Pfeiltasten reagieren
 
danke fuer die vielen antworten (man ging das schnell :-)

aber irgendwie will der bei mir nicht ?!

Code:
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.
was mach ich falsch ?
:wall:

Christian Seehase 7. Dez 2003 11:16

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.

himitsu 7. Dez 2003 11:17

Re: Auf Pfeiltasten reagieren
 
Falsche Stelle:
Code:
[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];
Tipp: Zum Erstellen des Ereignisses/der Prozedur einfach im OI in das leere Feld neben OnKeyPress klicken.
Und auf Chris hören.

http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

Peter_Panther 7. Dez 2003 11:23

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

braucheHilfe 19. Jan 2017 19:47

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 16:37 Uhr.
Seite 1 von 3  1 23      

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