AZuSk's secret log

AZuSkの日々的Hack雑記

カーソルの乗った状態でホイールスクロール

      2007/12/04

スポンサーリンク

hoge.secret.jp_300x250

えー、悩んで検索して調べたのでメモしておきますね。
delphiのスクロールできるコンポーネント(TMemo、TListBox等)はクリックしてアクティブにした状態でないとホイールスクロールしてくれません。それって使い心地不便ですよね。しかもOnClickイベントがあったりしたら、スクロールの為だけにOnClickイベント処理もされてしまいます。

カーソルを乗せた状態でホイールでスクロールしましょう。Form1のOnMouseWheelに以下を書きます

procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  if ( (listbox1.Left<(mousepos.X-left))
      and ((mousepos.X-left)<(listbox1.Left+listbox1.Width)))
      and ((listbox1.Top<(mousepos.Y-top))
      and (mousepos.Y-top<(listbox1.Top+listbox1.Height)) ) then
  begin
  //listbox1の座標とmouseの座標と比較計算して
  //(絶対座標なのでFormのleftとtopも計算にいれてある)
  //postmessageでlistbox1にスクロールmsgを渡す
    if wheeldelta>0 then
      postmessage(listbox1.Handle, WM_VSCROLL, SB_LINEUP, 0)
    else
      postmessage(listbox1.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
  end;
end;

これでスクロールしてくれる。

Powered by ScribeFire.

未分類

スポンサーリンク

hoge.secret.jp_336x280

hoge.secret.jp_336x280

Message

メールアドレスが公開されることはありません。

CAPTCHA


  関連記事

no image
Dreamweaverでサイトの管理情報が保存されないトラブル

HP作成にDreamweaverを使っているのですが、最近突然に、サイトの管理の …

no image
BlogPetのブログエディタからWordPressに投稿するには

BlogPetの各種設定ページの「基本設定」-「ブログ」を設定します。 まず、B …

no image
BlogPetのブログエディタの問題点

表示モードがhtml表示なので、タグの編集が出来ない。普通に文章を手打ちする分に …

no image
3Dチャット@IMVU

3Dのキャラでチャットできる、所謂アバターってやつ。 YouTubeに釣られて登 …

no image
ブログ通信簿のブログパーツを一時的に付けてみる

右側の最近のコメントの下に表示しています。

no image
mySQLのDownload元が分からない

以前、Apache+PHP4+mySQL4.0.24をインストールしてlolip …

no image
wordpressで編集中にスクロールバーが勝手に一番上に動く

タイトル通りです。 記事を編集中に突然一番上の行に移動してしまい、変換文字が見え …

no image
今年の目標

レンタルスペースでMySQLが使えると言うことで、DBサイトの構築をする事。 ま …

no image
Ping送信してアクセスアップ?

weblogs.comにもPing飛ばしてみよう ttp://www.borar …

no image
携帯各キャリア別絵文字ライブラリ

http://potora.dip.jp/これ有料http://search.c …