Советы по Delphi


Как определить нажаты ли Shift, Control, Alt в определенный момент?


Своим опытом делится Олег Кулабухов:

    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;

procedure TForm1.MenuItem12Click(Sender: TObject);
begin
if
ShiftDown then
Form1.Caption := 'Shift' else
Form1.Caption := '';
end;

[001822]



Содержание раздела