...detect more than 2 keys being pressed within a form?
Author: Radikal, Q3 Team
{
I would like to detect more than 2 keys being pressed within a form.
For example I would like to know if the user pressed
you can determine what keys are currently down.
}
// You can use GetKeyState:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If ((GetKeyState(VK_CONTROL) AND 128)=128) and
((GetKeyState(VK_F5) AND 128)=128) and
((GetKeyState(ord('8')) AND 128)=128)
then
ShowMessage('CTRL+F5+8 Pressed');
end;
( Remember: Form1.Keypreview := TRUE )
// Or you can read the entire KeyBoard Status,
// and later check for the three keys:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
KeybState: TKeyboardState;
begin
GetKeyboardState(Teclado);
If ( (KeybState[VK_CONTROL] and 128)=128 ) and
( (KeybState[VK_F5] and 128)=128 ) and
( (KeybState[Ord('8')] and 128)=128 )
then
ShowMessage('CTRL+F5+8 Pressed');
end;
printed from
www.swissdelphicenter.ch
developers knowledge base