Google Chrome でマウス ホイール ボタンをクリックすると、次のカーソルが表示されます。
そして、マウスで移動すると、可能なすべての方向にスクロールできます...
IEにもこれがありますが、上下にしか移動しません:
これを行うことができる Delphi のコンポーネントはありますか? (たとえば TScrollBox の場合)
Google Chrome でマウス ホイール ボタンをクリックすると、次のカーソルが表示されます。
そして、マウスで移動すると、可能なすべての方向にスクロールできます...
IEにもこれがありますが、上下にしか移動しません:
これを行うことができる Delphi のコンポーネントはありますか? (たとえば TScrollBox の場合)
この機能は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で実装することです...
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 ;)