首先判断Ctrl是否被按下 function CtrlDown: Boolean; var State: TKeyboardState; begin GetKeyboardState(State); Result := ((State[VK_CONTROL] and 128) <> 0); end; 可以自定义这个函数,实际上是系统判断键盘状态,可以用个timer控件检测Ctrl键的状态,然后再在KeyPress事件中判断是否在Ctrl键被按下的同时按下了Enter键就可以了!
其他的组合键都和上面判断Ctrl键的函数类似,只是把对应的键改一下就可以了
1,将Form1的KeyPreview属性设置为True, 2,在Form1的OnKeyDown事件中写代码: procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key=VK_RETURN then if ([ssctrl]=shift) then messagebox(handle,pchar('你按下了Ctrl+Enter组合键!'),pchar(''),mb_ok); end;
[DELPHI]关于键盘常量名 VK_BACK/VK_TAB/VK_RETURN/VK_SHIFT/VK_CONTROL/VK_MENU/VK_PAUSE/VK_ESCAPE /VK_SPACE/VK_LEFT/VK_RIGHT/VK_UP/VK_DOWN F1--F12:$70(112)--$7B(123) A-Z:$41(65)--$5A(90) 0-9:$30(48)--$39(57) 在可以接受键盘输入的过程里面,有个SHIFT参数,这个参数就是用来检查是否按下控制键的 常用的控制键有3个,他们的参数是[ssALT][ssSHIFT][ssCTRL] 判断CTRL+回车,你可以用下列语句 if (SHIFT=[ssCTRL]) and (Ord(Key)=VK_RETURN) then ...; 或者 if (SHIFT=[ssCTRL]) and (Key=13) then ...;
------------------- 1,将Form1的KeyPreview属性设置为True, 2,在Form1的OnKeyDown事件中写代码: procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key=VK_RETURN then if ([ssctrl]=shift) then messagebox(handle,pchar('你按下了Ctrl+Enter组合键!'),pchar(''),mb_ok); end;
function CtrlDown: Boolean;
var
State: TKeyboardState;
begin
GetKeyboardState(State);
Result := ((State[VK_CONTROL] and 128) <> 0);
end;
可以自定义这个函数,实际上是系统判断键盘状态,可以用个timer控件检测Ctrl键的状态,然后再在KeyPress事件中判断是否在Ctrl键被按下的同时按下了Enter键就可以了!
2,在Form1的OnKeyDown事件中写代码:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
if ([ssctrl]=shift) then
messagebox(handle,pchar('你按下了Ctrl+Enter组合键!'),pchar(''),mb_ok);
end;
VK_BACK/VK_TAB/VK_RETURN/VK_SHIFT/VK_CONTROL/VK_MENU/VK_PAUSE/VK_ESCAPE
/VK_SPACE/VK_LEFT/VK_RIGHT/VK_UP/VK_DOWN
F1--F12:$70(112)--$7B(123)
A-Z:$41(65)--$5A(90)
0-9:$30(48)--$39(57)
在可以接受键盘输入的过程里面,有个SHIFT参数,这个参数就是用来检查是否按下控制键的
常用的控制键有3个,他们的参数是[ssALT][ssSHIFT][ssCTRL]
判断CTRL+回车,你可以用下列语句
if (SHIFT=[ssCTRL]) and (Ord(Key)=VK_RETURN) then
...;
或者
if (SHIFT=[ssCTRL]) and (Key=13) then
...;
1,将Form1的KeyPreview属性设置为True,
2,在Form1的OnKeyDown事件中写代码:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
if ([ssctrl]=shift) then
messagebox(handle,pchar('你按下了Ctrl+Enter组合键!'),pchar(''),mb_ok);
end;