Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Tastatureingaben einbinden... (https://www.delphipraxis.net/56377-tastatureingaben-einbinden.html)

mosquito 4. Nov 2005 19:02


Tastatureingaben einbinden...
 
Hiho Leutz,

Also ich hab mal ne frage:
wenn ich eine procedure für zB. "Pfeil nach links" taste haben möchte, wie kann ich das realisieren???
:?:

marabu 4. Nov 2005 19:09

Re: Tastatureingaben einbinden...
 
Hi.

Erzeuge dir eine Action und verpasse der den Shortcut "Nach Links". Die Action klinkst du dann bei einer passenden Komponente auf deiner Form ein - MenuItem, Button, ...

Grüße vom marabu

EDatabaseError 4. Nov 2005 19:12

Re: Tastatureingaben einbinden...
 
oder du löst eine deklarierte Prozedur OnKeyDown aus.

mosquito 4. Nov 2005 19:17

Re: Tastatureingaben einbinden...
 
Nein, ich möchte das ja gerne für jede beliebige taste machen...:(

DGL-luke 4. Nov 2005 19:38

Re: Tastatureingaben einbinden...
 
Naja... da gibts n paar elegante Möglichkeiten. Du kannst z.B. ein array[$0..$FE] of procedure machen, das dann im OnKeyUp einfach keyarray[Key] macht. du kannst damit jeder taste ziemlich einfach einen event zuweisen.

Oder du machst es im KeyUp mit einer Case-Anweisung. Geht auch.

ichbins 5. Nov 2005 09:17

Re: Tastatureingaben einbinden...
 
Du kanns doch onkeydown nehmen und mit case abfragen.
Delphi-Quellcode:
case key of 37: //Links
            38: //Oben
            39: //Rechts
            40: //Unten
            65: //A
end;
if ssshift in shiftstate then //Shift gedrückt
ausprobieren kannst du mit showmessage(inttostr(key));

Pfoto 5. Nov 2005 09:48

Re: Tastatureingaben einbinden...
 
Wenn du global in deinem Programm die KeyCodes auffangen willst, vergess nicht, im Hauptformular "KeyPreview" auf True zu setzen. Damit verhinderst du, dass evtl. die Komponente, die gerade den Fokus hat, etwas (unbeabsichtigtes) aufgrund des Tastedrucks macht.

Gruß
Pfoto


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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