Tastendruck von Tastatur
abfragen/Abfangen
Bestimmte Tasten abfangen
Tastatureingaben werden immer an das im Fokus stehende Control gesendet.
Mittels der Form-Eigenschaft KeyPreview werden
Tastatureingaben zunächst zur Form gesendet und dann erst zum im
Fokus stehenden Control. Damit ist es möglich einen Tastendruck
dem Control vorzubehalten indem man die Eingabe mittels Key
:= 0 bzw. Key :=
#0 killt.
Hinweis: Einige Komponenten
lassen sich hiermit jedoch nicht beeindrucken, wie z.B. die
TCheckBox :-(
Alle Tasten von der Form abfangen
Objektinspektor > Eigenschaften > KeyPreview
auf
True setzen
|
procedure
TFormManuell.FormKeyDown(Sender: TObject;
var Key: Word; Shift:
TShiftState);
begin
key :=
#0;
end; |
Bestimmte Tasten von der Form
abfangen Objektinspektor > Eigenschaften >
KeyPreview auf
True setzen
|
procedure
TFormManuell.FormKeyDown(Sender: TObject;
var Key: Word; Shift:
TShiftState);
if Key = VK_Up
then Key :=
0;
// fängt Cursortaste (Pfeiltaste) hoch ab
if Key = VK_Down
then Key :=
0;
// fängt Cursortaste (Pfeiltaste) hoch ab |
Tasten abfangen und noch was
tun dabei Objektinspektor > Eigenschaften >
KeyPreview auf
True setzen
|
procedure
TFormManuell.FormKeyDown(Sender: TObject;
var Key: Word; Shift:
TShiftState);
if Key = VK_Up
then
begin
Key := 0;
// mach was...
end; |
Weitere
Tasten-Codes am Ende der Seite !
Nur bestimmte Zeichen zulassen (Beispiel mit
TEdit)
Objektinspektor
>
Ereignisse > OnKeyPress
|
procedure
TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
if
not (key in ['0'..'9',
',' ,
'.' , #8]) then
// nur Zahlen und Komma
begin
key := #0;
end;
end; |
Bestimmte
Zeichen nicht zulassen
(Beispiel mit TEdit)
Objektinspektor >
Ereignisse > OnKeyPress
|
procedure
TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
if ( Key =
'x' )
then
// x wird nicht mehr zugelassen
begin
Key := #0;
end;
end; |
Weitere Tasten-Codes VK_*
VK_NULL
VK_LBUTTON
VK_RBUTTON
VK_CANCEL
VK_MBUTTON
VK_BACK
VK_TAB
VK_CLEAR
VK_RETURN
VK_SHIFT
VK_CONTROL
VK_MENU $12 ALT Taste
VK_PAUSE
VK_CAPITAL
VK_ESCAPE
VK_SPACE
VK_PRIOR
VK_NEXT
VK_END
VK_HOME
VK_LEFT
VK_UP
VK_RIGHT
VK_DOWN
VK_SELECT
VK_PRINT
VK_EXECUTE
VK_SNAPSHOT
VK_INSERT
VK_DELETE
VK_HELP
VK_0 $30 Taste 0
VK_1 $31 Taste 1
VK_2 $32 Taste 2
VK_3 $33 Taste 3
VK_4 $34 Taste 4
VK_5 $35 Taste 5
VK_6 $36 Taste 6
VK_7 $37 Taste 7
VK_8 $38 Taste 8
VK_9 $39 Taste 9
VK_A $41 Taste A
VK_B $42 Taste B
VK_C $43 Taste C
VK_D $44 Taste D
VK_E $45 Taste E |
VK_F
$46 Taste F
VK_G $47 Taste G
VK_H $48 Taste H
VK_I $49 Taste I
VK_J $4A Taste J
VK_K $4B Taste K
VK_L $4C Taste L
VK_M $4D Taste M
VK_N $4E Taste N
VK_O $4F Taste O
VK_P $50 Taste P
VK_Q $51 Taste Q
VK_R $52 Taste R
VK_S $53 Taste S
VK_T $54 Taste T
VK_U $55 Taste U
VK_V $56 Taste V
VK_W $57 Taste W
VK_X $58 Taste X
VK_Y $59 Taste Y
VK_Z $5A Taste Z
VK_LWIN
VK_RWIN
VK_APPS
VK_NUMPAD0
VK_NUMPAD1
VK_NUMPAD2
VK_NUMPAD3
VK_NUMPAD4
VK_NUMPAD5
VK_NUMPAD6
VK_NUMPAD7
VK_NUMPAD8
VK_NUMPAD9
VK_MULTIPLY
VK_ADD
VK_SEPARATOR
VK_SUBTRACT
VK_DECIMAL
VK_DIVIDE
VK_F1 $70 F1 Taste
VK_F2 $71 F2 Taste
VK_F3 $72 F3 Taste
VK_F4 $73 F4 Taste
VK_F5 $74 F5 Taste
VK_F6 $75 F6 Taste |
VK_F7
$76 F7 Taste
VK_F8 $77 F8 Taste
VK_F9 $78 F9 Taste
VK_F10 $79 F10 Taste
VK_F11 $7A F11 Taste
VK_F12 $7B F12 Taste
VK_F13 $7C F13 Taste
VK_F14 $7D F14 Taste
VK_F15 $7E F15 Taste
VK_F16 $7F F16 Taste
VK_F17 $80 F17 Taste
VK_F18 $81 F18 Taste
VK_F19 $82 F19 Taste
VK_F20 $83 F20 Taste
VK_F21 $84 F21 Taste
VK_F22 $85 F22 Taste
VK_F23 $86 F23 Taste
VK_F24 $87 F24 Taste
VK_NUMLOCK
VK_SCROLL
VK_LSHIFT
VK_LCONTROL
VK_RCONTORL
VK_LMENU
VK_RMENU
VK_SEMICOLON $BA Taste ;
VK_EQUAL $BB Taste =
VK_COMMA $BC Taste ,
VK_MINUS $BD Taste -
VK_PERIOD $BE Taste .
VK_SLASH $BF Taste \
VK_BACKQUOTE $C0 Taste `
VK_LEFTBRACKET $DB
Taste <
VK_BACKSHLASH $DC
Taste \
VK_RIGHTBRACKET $DD Taste >
VK_QUOTE $DE Taste ´
VK_PROCESSKEY
VK_ATTN
VK_CRSEL
VK_EXSEL
VK_EREOF
VK_PLAY
VK_ZOOM
VK_NONAME
VK_PA1
VK_OEM_CLEAR |
|