3

Google Chrome でマウス ホイール ボタンをクリックすると、次のカーソルが表示されます。

ここに画像の説明を入力

そして、マウスで移動すると、可能なすべての方向にスクロールできます...

IEにもこれがありますが、上下にしか移動しません:

ここに画像の説明を入力

これを行うことができる Delphi のコンポーネントはありますか? (たとえば TScrollBox の場合)

4

2 に答える 2

3

この機能はRAD studio 2009 で利用できるようです(D7 では利用できません)。(imouse.pas ユニット)を使用する必要がImouseあり、コントロールには csPannable の ControlStyle が必要です。

見積もり:

Imouse (imouse.pas ユニット) は、中央ボタンによるスクロール (「マウス パン」とも呼ばれます) の標準実装です。RAD Studio でも使用されます。Imouse 機能は、標準のウィンドウ スクロールバーを中継し、WM_HSCROLL/WM_VSCROLL をウィンドウに送信してスクロールさせます。スクロールバーがあるすべてのウィンドウで機能します (例: TListView、TTreeView、AutoScroll が True で少なくとも 1 つのスクロールバーが表示されている場合は TForm/TFrame など)。

あ、ひとつ忘れてました。Control は ControlStyle に csPannable を持たなければなりませんが、RichView はデフォルトでは持っていません。したがって、コードを追加した後: RichViewEdit1.ControlStyle := RichViewEdit1.ControlStyle + [csPannable];

私はそれをテストしませんでした。私に残されているのは、ソースコードを調べて(D2009のコピーを手に入れることができたら)、おそらくこれをD7で実装することです...

于 2013-01-28T21:09:20.500 に答える
3

TMemo, for example, can do that for you, provided you set its ScrollBars property to something else than ssNone. It will even adjust according to which scroll bars are enabled. Problem with TScrollBar component is that on its own it doesn't have any focusable parts and won't receive OnMouseWheel(/Up/Down) events, but its included windowed controls might. You could write a workaround for that on main form events, though. Check solutions at http://www.delphipages.com/forum/showthread.php?t=197309

EDIT: OnMouseWheel(/Up/Down) should be OnMouse(/Up/Down), thanks to @Sertac Akyuz for pointing this out ;)

于 2013-01-11T00:04:50.670 に答える