今回はDelphi/400のアプリケーションで項目をマウス押下した際の
ShiftキーやCtrlキーなどをハンドリングした制御判断方法をご紹介いたします。
Delphi/400では画面からのクリックなどをイベントで扱うことができますが、
アプリケーションの操作仕様として、Shiftキーを押下しながらのクリックや
Ctrlキーを押下しながらのクリックで異なる処理を実装したい場合があります。
そうした場合にマウスの詳細動作を判断するには、
OnMouseDownイベントやOnMouseUpイベントなどを使うと簡単に制御することができます。
例)ボタン押下時にShiftキーを判断
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (ssShift in Shift) then
begin
ShowMessage('シフトキーを押しながらクリックされました');
end;
end;
OnMouseDownイベントやOnMouseUpイベントでは、
上記のようにTShiftState型のShiftパラメータを受け取りますので、
そのパラメータでShiftやCtrlの押下状況、あるいは右クリック、左クリックなどの判断をすることができます。
TShiftStateで判断できる代表的な値として次のようなものがあります。
- ssShift :Shiftキー押下
- ssAlt :Altキー押下
- ssCtrl :Ctrlキー押下
- ssLeft :右クリック
- ssRight:左クリック
- ssMiddle:ホイールクリック
マウスクリックに対応して、
操作に応じた複数の処理機能を実装する場合などに便利ですので、是非ご活用下さい。
<関連記事>
【Delphi】OnKeydown 組み合わせキーのハンドリング