Delphi はずっと使っているが、Delphi の仕事を受注したことは過去に 2 回しかない
中村拓男さん - 「Delphi15y Meetup」参加記 - 酒と蕎麦と IT と
2010/08/13
OnMouseWheel が多重発生
TForm.OnMouseWheel イベントで
「左ボタン + クリクリ」などで余計な物が送られてきます
(D5、D2009 で確認)
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
var
S:string;
begin
S:='----';
if ssShift in Shift then S:=S+#9+'ssShift';//正常
if ssAlt in Shift then S:=S+#9+'ssAlt';//正常
if ssCtrl in Shift then S:=S+#9+'ssCtrl';//← ssCtrl の後 ssShift が発生
if ssLeft in Shift then S:=S+#9+'ssLeft';//← ssLeft の後 ssCtrl が発生
if ssRight in Shift then S:=S+#9+'ssRight';//正常
if ssMiddle in Shift then S:=S+#9+'ssMiddle';//正常
if ssDouble in Shift then S:=S+#9+'ssDouble';//テスト出来ない
Memo1.Lines.Add(S);
end;
現在これで分岐に困っています
(もしかしてロジクールの問題なんでしょうか?)
「左ボタン + クリクリ」と「Ctrl + クリクリ」を明確に見分ける方法は
ありますでしょうか?
よろしくお願いいたしますm(_ _)m
--------------------------------------------------------------------------
と、いう質問を
とあるところで聞こうと思ったんだけど
begin
Handled := True;
この一行で解決した
冷静に考えればわかるんだろうけど、この一行って結構なくても使えてたりするからはまるんですよね
「左ボタン + クリクリ」などで余計な物が送られてきます
(D5、D2009 で確認)
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
var
S:string;
begin
S:='----';
if ssShift in Shift then S:=S+#9+'ssShift';//正常
if ssAlt in Shift then S:=S+#9+'ssAlt';//正常
if ssCtrl in Shift then S:=S+#9+'ssCtrl';//← ssCtrl の後 ssShift が発生
if ssLeft in Shift then S:=S+#9+'ssLeft';//← ssLeft の後 ssCtrl が発生
if ssRight in Shift then S:=S+#9+'ssRight';//正常
if ssMiddle in Shift then S:=S+#9+'ssMiddle';//正常
if ssDouble in Shift then S:=S+#9+'ssDouble';//テスト出来ない
Memo1.Lines.Add(S);
end;
現在これで分岐に困っています
(もしかしてロジクールの問題なんでしょうか?)
「左ボタン + クリクリ」と「Ctrl + クリクリ」を明確に見分ける方法は
ありますでしょうか?
よろしくお願いいたしますm(_ _)m
--------------------------------------------------------------------------
と、いう質問を
とあるところで聞こうと思ったんだけど
begin
Handled := True;
この一行で解決した
冷静に考えればわかるんだろうけど、この一行って結構なくても使えてたりするからはまるんですよね
登録:
投稿 (Atom)