プロシージャの引数のShift: TShiftState
を判定すればいいのではないでしょうか?
--------------------------------------
Enjoy MLB with MAJOR.JP! Ichiro, Matsuzaka, Matsui, and more!
http://pr.mail.yahoo.co.jp/mlb/
hiro さんは書きました:
いろいろやり方があると思いますが、
1) Shift パラメータを使う。
OnMouseDown や OnMouseUp の Shift パラメータ の ssShift を見れば、Shift が押されているかどうか
確認できます。
2) GetAsyncKeyState API を使う。
OnClick など Shift パラメータの無いイベントでは GetAsyncKeyState を使うと便利でしょう。
左右のシフトを区別することもでき、あらゆるキーの ON/OFF を判別することもできます。
GetAsynckeyState(VK_SHIFT) < 0 ← シフトが押されている場合は True
----------
東京都 日野市 中村拓男
procedure TTest.Image1Click(Sender: TObject);
begin
if GetAsynckeyState(VK_SHIFT) < 0 then
begin
ShowMessage('VK_SHIFT True');
end
else
if not (GetAsynckeyState(VK_SHIFT) < 0) then
begin
ShowMessage('VK_SHIFT False');
end;
end;
いろいろに応用ができそうなので有り難いアドバイスでした
ありがとうございました hiro
サンプルです。in を使って調べられます
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssShift in Shift then
Label1.Caption := 'SHIFT ON'
else if ssCtrl in Shift then
Label1.Caption := 'CTRL ON'
else
Label1.Caption := 'NOT';
end;
--
takashi <taka...@csjpn.com>
----- Original Message -----
From: "takashi" <taka...@csjpn.com>
To: <Del...@ml.users.gr.jp>
以下のページを見つけました。
http://www.interq.or.jp/moonstone/person/del/mouse.htm
takashiさんの情報とかとだぶりますがどうぞ。
hiroです
キー操作の幅が広がりました
ありがとうございましたm(__)m