如何检测ALT键已按下?送100分(100分)

  • 主题发起人 主题发起人 wengmxj
  • 开始时间 开始时间
W

wengmxj

Unregistered / Unconfirmed
GUEST, unregistred user!
如何检测ALT键已按下?送100分
 
{其实就是使用GetKeyboardState}
function CtrlDown: Boolean;
var
State: TKeyboardState;
begin

GetKeyboardState(State);
Result := ((State[VK_CONTROL] and 128) <> 0);
end;

function ShiftDown: Boolean;
var
State: TKeyboardState;
begin

GetKeyboardState(State);
Result := ((State[VK_SHIFT] and 128) <> 0);
end;

function AltDown: Boolean;
var
State: TKeyboardState;
begin

GetKeyboardState(State);
Result := ((State[VK_MENU] and 128) <> 0);
end;

 
在OnShortCut中处理
var
Shift: TShiftState;
begin
Shift := KeyDataToShiftState(Msg.KeyData);
不就可以了:)
 
procedure TForm1.FormKeyDown( Sender: TObject;var Key:Word, Shift:TShiftState );
begin
if key = VK_MENU then
begin
................
end;
end;
 
procedure TfrmEng.ToolButton7MouseDown(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
begin
if Shift = ssAlt then
。。。
end;
 
procedure TForm1.FormKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if key = 18 then
begin
...处理过程
end;
end;
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部