2010/08/30

そーなんだー

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;

この一行で解決した
冷静に考えればわかるんだろうけど、この一行って結構なくても使えてたりするからはまるんですよね