喫茶XRAYトップページ


[10950] マウスホイールを無効にする返信 削除
2017/3/23 (木) 14:10:43 Mr.XRAY
マウスホイールによるスクロールを無効にするというのであれば,
例えば以下のようにすると可能です.
コードは,フォーム上の TListBox のスクロールの制御です.

マウスホイールの機能を無効にするとなると,システム的なのかな ?
これは分かりません.
動作確認は Windows 7 U64(SP1) + Delphi XE(UP1) Pro てす.


procedure TForm1.FormCreate(Sender: TObject);
var
  i : Integer;
begin
  ListBox1.Items.BeginUpdate;
  for i := 0 to 100 do begin
    ListBox1.Items.Add(IntToStr(i));
  end;
  ListBox1.Items.EndUpdate;
end;

procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  if ActiveControl.Handle = ListBox1.Handle then begin
    //引数のHandledをTrueにすると処理したことになる
    //つまりMouseWheelイベントは実行済みということになるので
    //マウスホイールではスクロールしない
    Handled := CheckBox1.Checked;
  end;
end;




[10953] Re:マウスホイールを無効にする返信 削除
2017/3/23 (木) 19:28:56 Mr.XRAY
> マウスホイールの機能を無効にするとなると,システム的なのかな ?

こんなのもありますけど.
「くるくる」さんの反応は,私には理解不可能です.
「それなりに」とは一体どういう状態なのか ?
スクロールの動作とフォーカスの移動とはどういう関係なのか ?

[ComboBoxをホイールでスクロールさせないようにするには? ]
http://www.papy.in/bbs/delphi/200509/05090044.html


[10955] Re2:マウスホイールを無効にする返信 削除
2017/3/24 (金) 08:29:29 SO
▼ Mr.XRAYさん
> > マウスホイールの機能を無効にするとなると,システム的なのかな ?
>
> こんなのもありますけど.
> 「くるくる」さんの反応は,私には理解不可能です.
> 「それなりに」とは一体どういう状態なのか ?
> スクロールの動作とフォーカスの移動とはどういう関係なのか ?
>
> [ComboBoxをホイールでスクロールさせないようにするには? ]
> http://www.papy.in/bbs/delphi/200509/05090044.html


あんまり良く読んでなく、想像ですが、アレじゃないでしょうか?

コンボボックスでリストが表示されていない状態で、
フォーカスがあるとして、ホイールをくるくるすると、
コンボボックスがスクロール。。。じゃなく、別の値を選択するっていうやつ?

[10957] Re3:マウスホイールを無効にする返信 削除
2017/3/24 (金) 09:56:27 おかぽん
▼ SOさん
> コンボボックスでリストが表示されていない状態で、
> フォーカスがあるとして、ホイールをくるくるすると、
> コンボボックスがスクロール。。。じゃなく、別の値を選択するっていうやつ?

ドロップダウン中だけ、ホイールで動いてほしいってやつですかね?

procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  if ActiveControl = ComboBox1 then Handled := not ComboBox1.DroppedDown;
end;


[10958] Re4:マウスホイールを無効にする返信 削除
2017/3/24 (金) 10:35:42 Mr.XRAY
▼ おかぽんさん

> procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
>   WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
> begin
>   if ActiveControl = ComboBox1 then Handled := not ComboBox1.DroppedDown;
> end;


なるほど,そうですか.
私がレスしたコードだと,ドロップダウンリストを表示している時,
マウスホイールが使えないですね.


[10959] Re5:マウスホイールを無効にする返信 削除
2017/3/24 (金) 10:53:24 Mr.XRAY
>ComboBoxのText部の右横のボタン(リストを表示させるボタン)で
>リストを閉じたときComboBoxのText部にフォーカスが移ってしまいます。


これは通常の動作だと思うんですが.
何かありましたっけ.

# 質問そのものは,マウスホイールの動作のことなのに,関係ないと思うのですが,
# こういう書き方をされると,私がレスしたコードのせいに聞こえる...
# 言っておきますが,リストを閉じなくても,ドロップダウン用のボタンを
# クリックした時点で TComboBox にフォーカス移動するハズです.


[10960] Re5:マウスホイールを無効にする返信 削除
2017/3/24 (金) 11:06:25 Mr.XRAY
> なるほど,そうですか.
> 私がレスしたコードだと,ドロップダウンリストを表示している時,
> マウスホイールが使えないですね.


折角教えて頂いたのに何ですが,質問は

>C00000omboBoxをホイールでスクロールさせたくないのですが。。。
>教えてください。


つまり,TComboBox でマウスホイールが無効になればいいんですね.
ヘヘヘッ


[10961] Re6:マウスホイールを無効にする返信 削除
2017/3/24 (金) 11:22:38 おかぽん
▼ Mr.XRAYさん
> つまり,TComboBox でマウスホイールが無効になればいいんですね.
> ヘヘヘッ

「ドロップダウン時だけ」とか条件指定してないし、あれでいいんじゃないでしょうか。
あれだけで全部わかったら、それこそエスパーです。

# まさか、Mr.XRAY から Esper.XRAY に・・・

[10962] Re7:マウスホイールを無効にする返信 削除
2017/3/24 (金) 11:27:05 Mr.XRAY
> > ヘヘヘッ
> 「ドロップダウン時だけ」とか条件指定してないし、あれでいいんじゃないでしょうか。


はははっ.
ちょっと言ってみたかっただけです.
おかぽんさんのコードの方が親切です.
実際に質問された方が,テストした時,私がレスしたコードをやってみたら,

「リストを表示した時にマウスホイールでスクロールしないのですが」

となる可能性があります.


[10963] Re8:マウスホイールを無効にする返信 削除
2017/3/24 (金) 16:50:57 Mr.XRAY
> おかぽんさんのコードの方が親切です.

おかぽんさん,本当にゴメンナさい.
使わせて頂きました.既に添付しているファイルを修正するのは面倒なので,
記事を追加することで対応しました.
この方がサイトの記事を読む方にとってもいいかと.

『人が教えてやったのを勝手に使いやがって.もう教えてやらない !!』
なんて言わないで,これからもよろしく.

最近喫茶XRAY の書き込みで記事が充実していくな〜.
皆さんに感謝です.

[ワード操作フォームEx] [マウスホイールでのスクロールを無効にする]
http://mrxray.on.coocan.jp/Delphi/plWordEx/T_ReplaceStr.htm#02


[10969] Re9:マウスホイールを無効にする返信 削除
2017/3/25 (土) 08:12:57 おかぽん
▼ Mr.XRAYさん
いやいや、SOさんの書き込みを読んでのことですから、今回のファインプレーは、
むしろSOさんですよ。
これがなければ、たぶん考えつかないです。

つまり、友情・努力・勝利・・・違うか

[10974] Re10:マウスホイールを無効にする返信 削除
2017/3/27 (月) 13:59:05 Esper.SO
▼ おかぽんさん
> ▼ Mr.XRAYさん
> いやいや、SOさんの書き込みを読んでのことですから、今回のファインプレーは、
> むしろSOさんですよ。
> これがなければ、たぶん考えつかないです。
>
> つまり、友情・努力・勝利・・・違うか


(^-^)b

INCM/CMT
Cyclamen v3.82