過去の桐井戸端BBS (桐ver.9)
18720 一覧表形式フォームでホイールボタンを使って行スクロールをさせたい はちがめ 2003/01/25-10:15
一覧表形式でフォームを定義しています。
表形式では、ホイール釦で行スクロールできますが、フォームではできません。
(ひょっとしてそれができるのであれば、全て解決なんですが)
そこで、下記のイベントを組んでみました。

イベントの挙動は正常のようですが(スクロールバーの動作から)表示がうまくいきません。
その都度一行ずつ表示させたいのですが、イベント終了と同時に一挙にジャンプしたようなかたちで表示されます。

そこで質問ですが、
上記を実現するコマンドあるいはメソッドは何をどのように使えばよろしいのでしょうか?
あるいは、明細番号設定メソッドの使い方が間違っているのでしょうか?
よろしくお願いします。

&mY座標初・&m移動量はともに数値型変数。
&m移動量は挙動開始の乖離幅初期値をセットします。

手続き定義開始 フォーム明細部::マウス移動\
       (長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ)
 if (&フラグ<>3)
   代入 &i=0
   代入 &mY座標初=0
  else
   代入 &i=&i+1
   if (&i=1)
     代入 &mY座標初=&マウス位置[2]
   end
   メソッド呼び出し @フォーム.再描画( 1 )
   メソッド呼び出し @フォーム.明細番号取得( &m明細番号 )
   ケース開始
    ケース (&マウス位置[2]<&mY座標初-&m移動量)
     ジャンプ 行番号=前行
     メソッド呼び出し @フォーム.明細番号設定( &m明細番号 )
    ケース (&マウス位置[2]>&mY座標初+&m移動量)
     ジャンプ 行番号=次行
     メソッド呼び出し @フォーム.明細番号設定( &m明細番号 )
   ケース終了
   メソッド呼び出し @フォーム.描画更新()
 end
手続き定義終了

環境 桐Ver9 Win2K
18723 Re:一覧表形式フォームで行スクロールの表示 うにん 2003/01/25-13:41
記事番号18722へのコメント
>一覧表形式でフォームを定義しています。
>表編集では、ホイール釦で行スクロールできますが、フォーム編集ではできません。

うちのマウスではホイールでフォームのスクロールができます。
マウスドライバに依存するのではないでしょうか。
A4TECHのを使っています。
他社のと違って、アクティブでないウィンドウもスクロールできるので一度使うと手放せません。
(ここのドライバを入れると、他社のマウスでもできるようになるようですが。)

ただ、行挿入中にスクロールするとどんどん行が追加されてしまうのが
ちょっと使いづらいかも?

18724 A4TECHのドライバでスクロールOK はちがめ 2003/01/25-15:16
記事番号18723へのコメント
うにんさん、ありがとうございます。

>うちのマウスではホイールでフォームのスクロールができます。

えっ!フォームもスクロールできるんですか。

>マウスドライバに依存するのではないでしょうか。

早速、A4TECHのHPからドライバをゲット。
インスツールして再起動したところ・・・なんと見事気持ちよくスクロールしました。

今まで、何度かマウスも交換しましたが、
添付のドライバをインスツールして使ったことはありません。
WINDOWSの標準ドライバで、とりあえず動きますので不都合を感じていませんでした。
いま思えば、マウスに付いているボタン等が機能しないことがありましたね。
また、桐使用時表編集ではスクロールするのに、フォームのみスクロールしないため、
ドライバの件は思いも及ばず、桐の仕様かと思っていました。

これで私の環境に於いては前出の問題は解決しました。ありがとうございます。

ところで、今回のフォームは他の方が他のパソコンで使用します。
私のフォーム操作の勉強もかねて、引き続き問題解決の手法について
ご教授頂ければと思います。
よろしくお願いします。

戻る