Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Tasten abfragen (https://www.delphipraxis.net/29164-tasten-abfragen.html)

ferby 4. Sep 2004 22:26


Tasten abfragen
 
Hallo,

Ich weiß wie man Normale Tasten wie Buchstaben abfragt. Aber wie frage ich z.B: die Pfeiltasten, die Esc Taste oder die Entertaste ab?

if key=Pfeiltaste nach links then mach was.....



Wie geht das?

djmasi 4. Sep 2004 22:30

Re: Tasten abfragen
 
Hi :hi:

z.B. so (ist ein Auszug aus nem Prog von mir)
Delphi-Quellcode:
//****************************************************************************//
procedure TFMain.VSTSectionsKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  //wird eine Taste gedrückt, mit der das OnChange-Event ausgelöst wird,
  //so wird über CanUpdate dieses verhindert um ein flackern zu vermeiden
  if (Key = VK_DOWN) or
     (Key = VK_NEXT) or
     (Key = VK_PRIOR) or
     (Key = VK_UP) or
     ((Key in [65..90]) and (ssShift in Shift)) then
    CanUpdate := False;
end;
//****************************************************************************//
//****************************************************************************//
[edit]
Steht in der Windows.pas
Delphi-Quellcode:
  {$EXTERNALSYM VK_ESCAPE}
  VK_ESCAPE = 27;
  {$EXTERNALSYM VK_SPACE}
  VK_SPACE = $20;
  {$EXTERNALSYM VK_PRIOR}
  VK_PRIOR = 33;
  {$EXTERNALSYM VK_NEXT}
  VK_NEXT = 34;
  {$EXTERNALSYM VK_END}
  VK_END = 35;
  {$EXTERNALSYM VK_HOME}
  VK_HOME = 36;
  {$EXTERNALSYM VK_LEFT}
  VK_LEFT = 37;
  {$EXTERNALSYM VK_UP}
  VK_UP = 38;
  {$EXTERNALSYM VK_RIGHT}
  VK_RIGHT = 39;
  {$EXTERNALSYM VK_DOWN}
  VK_DOWN = 40;
[/edit]

Duffy 4. Sep 2004 22:35

Re: Tasten abfragen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo ferby,
und das Ganze mal in eine Demno verpackt ...

ferby 4. Sep 2004 22:41

Re: Tasten abfragen
 
Hallo,

wie muss ich das eingeben?
habe probiert:

if key=VK_DOWN then...
if key=#40 then...

aber da geht es nicht.

Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin

  if status='spiel' then
  begin
  if key='4' then richtung:='links';
  if key='6' then richtung:='rechts';
  if key='8' then richtung:='rauf';
  if key='2' then richtung:='runter';
  end;

end;
Das habe ich geschrieben nur statt den Nummern will ich jetzt die Pfeiltasten

Duffy 4. Sep 2004 22:43

Re: Tasten abfragen
 
Hallo ferby,
schau Dir doch die Demo an, der Rest findet sich ;-)

bye
Claus

djmasi 4. Sep 2004 22:43

Re: Tasten abfragen
 
das geht nur im OnKeyDown-Ereignis. Falls Du es gesehen hast, da ist Key als Word definiert, im OnKeyPress als Char

Nonsense 4. Sep 2004 22:53

Re: Tasten abfragen
 
Anstatt einer if then Abfrage geht auch case of.

ferby 4. Sep 2004 23:04

Re: Tasten abfragen
 
Hallo,

Ich verstehs noch immer nicht so ganz, auch mit dem demo nicht.
Ich habe jetzt statt char word genommen.
Wenn ich jetzt das programm starte kommt die meldung: Die Methode FormKeyPress, auf die Form1.onkeypress verweißt, enthält einen inkompatible Parameterliste. Soll der Verweiß entfernt werden?

Geh ich auf ja geht gar keine Taste mehr geh ich auf nein startet das Progamm nicht....

djmasi 4. Sep 2004 23:09

Re: Tasten abfragen
 
Laut der Delphi-Hilfe:
Zitat:

Der Parameter Key in der Ereignisbehandlungsroutine für OnKeyPress hat den Typ Char. Deshalb registriert das Ereignis OnKeyPress das ASCII-Zeichen der gedrückten Taste. Entspricht die Taste keinem ASCII-Zeichenwert (beispielsweise Umschalt oder F1), wird kein OnKeyPress-Ereignis generiert. Tastenkombinationen (beispielsweise Umschalt+A) generieren nur ein OnKeyPress-Ereignis (in diesem Beispiel generiert Umschalt+A den Wert "A" für Key, sofern die Großbuchstabenarretierung nicht aktiviert ist. Verwenden Sie die Ereignisbehandlungsroutine für OnKeyDown oder OnKeyUp, um auf Nicht-ASCII-Tasten oder -Tastenkombinationen zu antworten.
Das heißt:
Du musst auf das OnKeyUp- bzw. OnKeyDown-Event reagieren

ferby 4. Sep 2004 23:12

Re: Tasten abfragen
 
Hallo,

Danke jetzt gehts.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:55 Uhr.
Seite 1 von 2  1 2   

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