ウィンドウ上のコントロールを一括で操作する

PowerBuilder Tips

方法

ペインタでウィンドウに配置されたコントロールは Window オブジェクトの Control プロパティに格納されています。

Control プロパティは PowerObject 型の配列であり、TypeOf 関数を使用することでコントロールの種類を確認することができます。

ループ処理で Control プロパティに格納された各コントロールの種類をチェックし、目的の種類である場合は、あらかじめ宣言したそれぞれの型の変数に格納することで操作することができます。

以下の例では、ループでそれぞれのコントロールの種類を確認し、シングルラインエディットの場合、SingleLineEdit 型の配列に格納してから、すべてのテキストを初期化しています。

【例】

[ウィンドウに配置した CommandButton の Clicked イベント]

SingleLineEdit sle_controls[]
long ll_count,ll_sle

ll_sle=0

// UpperBound 関数で ウィンドウ上のコントロールの数を取得し、その数分ループする
FOR ll_count = 1 TO UpperBound(parent.Control[])
    // コントロールの種類を確認し、シングルラインエディットであれば、シングルラインエディット配列に格納する
    IF parent.Control[ll_count].TypeOf( ) = SingleLineEdit! THEN
        ll_sle++    
        // 取得
        sle_controls[ll_sle] =  parent.Control[ll_count]
    END IF
NEXT

// シングルラインエディットの数分だけループして初期化を行う
FOR ll_count = 1 TO ll_sle
    // それぞれのシングルラインエディットの入力データを初期化
    sle_controls[ll_count].Text = ""
NEXT

 

Tips情報

プロダクト :PowerBuilder

バージョン :2019R3

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