中ボタンのオートスクロール

初期のインテリマウスでは、ドライバをインストールするだけでよかった。
特殊なスクロールバーを独自実装している物以外、全てのアプリでオートスクロールは可能だった。
もちろん真魚でもオートスクロール出来ていた。
昨今のドライバではできないわけだが、どうしても必要なら、今は自前で実装するしかない。
たぶん、MS製以外でオートスクロールするアプリは、自前で実装しているはず。
だが、ドライバのバージョンによって出来たり出来なかったりする物を、
勝手に自前で実装してドライバと競合するのも嫌なので、あえて何も手を出さずにいた。



そうしているうちに、中ボタンにデフォルトで別の機能を割り当てたドライバまで出てくるし、
サードパーティはMSのドライバに振り回されっぱなしだ。
振り回されるくらいなら、面倒だから何もしないってので今までやって来た。

うちとしては、初期のインテリマウスのように、全てのアプリをオートスクロールしてくれたらうれしい。
でも、おそらく中ボタンに別の機能を割り当てた有名アプリで不具合があったんだろうな。
たぶんもう昔の仕様に逆戻りすることはないだろうから、今こそ自前実装をやるしかない。
と、ちょうど思っていた。

あたしはDelphi 2007を買ってないので知らなかったのだが、
2007からはこれを自前実装するためのコードが組み込まれているので、
真魚にも簡単に自前実装することにした。
Delphiのフィールドテスト参加者は秘密を守る義務があるのだが、
既にCodeGearが大々的に発表している物に関しては、全然秘密じゃないので口外できる。
オートスクロールは2008の秘密じゃなく、2007で既にある物だから、関連する話題も問題ない。

でだ、そのVCLで実装されたオートスクロールが、イマイチ偽物っぽい。
マウスのマークも微妙に違うし、動作がちょっと違って不満だ。
マークに関しては直せるかどうかわからないが、動作に関してはどうにかなった。
真魚の場合、縦スクロール出来ない状況でも、無効化されたスクロールバーが表示されている。
この状況では、オートスクロールも縦スクロール不可であると認識しなければならない。
でも、そのVCLのオートスクロールは、縦スクロール用スクロールバーがあるという事しか判定せず、
間違った表示をしてしまうから、それを自前で修正して使わなければいけない。
幸いにもオーバーライド可能に作られていたので、らくらく修正出来た。

フィールドテスト中のDelphiで目玉となる新機能と言えば、発表されている物はユニコードくらいだが、
既に発売されている2007での新機能は結構いろいろあったようで、
それらに関しては秘密じゃないので、どんどん話題にしていく。

たぶん関連のある記事:

コメントは終了しています。