ウィンドウ上のコントロールを一括で操作する
2022/03/04
方法
ペインタでウィンドウに配置されたコントロールは 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