データウィンドウ以外のコントロールをスクリプトでスクロールする

PowerBuilder Tips

方法

リストボックスなど、データウィンドウ以外のコントロールでスクロールを行うためには、Send 関数で対象のコントロールにメッセージを送信します。

リストボックスやツリービューなどのコントロールはスクロールするための関数やイベントが用意されていませんが、Send 関数で垂直スクロールを指定する定数とスクロール量を指定する定数を渡すことでスクロールが可能です。 スクロールを行う構文は以下のとおりです。

Send( コントロールのハンドル, メッセージNo, lowword, 0)

パラメーター

メッセージNo 水平スクロール226
垂直スクロール227
lowword 1 つ上 (左) へスクロール0
1 つ下 (右) へスクロール1
1 ページ上 (左) へスクロール2
1 ページ下 (下) へスクロール3
最上部 (左端) へスクロール6
最下部 (右端) へスクロール7

【例】垂直スクロール

CONSTANT integer WM_VSCROLL = 277  // 垂直スクロール

CONSTANT integer SB_LINEUP = 0  // 1 行上へ
CONSTANT integer SB_LINEDOWN = 1  // 1 行下へ
CONSTANT integer SB_PAGEUP = 2  // 1 ページ上へ
CONSTANT integer SB_PAGEDOWN = 3  // 1 ページ下へ
CONSTANT integer SB_TOP = 6  // 最上部へ
CONSTANT integer SB_BOTTOM = 7  // 最下部へ

// リストボックス (lb_1) を 1 行下にスクロール
Send(Handle(lb_1), WM_VSCROLL, SB_LINEDOWN, 0)

【例】垂直スクロール

CONSTANT integer WM_HSCROLL = 276  // 水平スクロール

CONSTANT integer SB_LINELEFT = 0  // 左へ
CONSTANT integer SB_LINERIGHT = 1  // 右へ
CONSTANT integer SB_PAGELEFT = 2  // 1 ページ左へ
CONSTANT integer SB_PAGERIGHT = 3  // 1 ページ右へ
CONSTANT integer SB_LEFT = 6  // 左端へ
CONSTANT integer SB_RIGHT = 7  // 右端へ

// ツリービュー (tv_1) を右端にスクロール
Send(Handle(tv_1), WM_HSCROLL, SB_RIGHT, 0)

 

Tips情報

プロダクト :PowerBuilder

バージョン :2017R3

Tips 一覧を見る
PowerBuilder マイグレーション
PowerBuilder学習、動画で始めちゃう?