本節では、配列化したコントロールを使ったアプリケーションを、以下のように作成しながら説明します。
フォームにコントロールを配置します。
コントロールを配列化します。
配列化したコントロールの手続きを記述します。
フォームにコントロールを配置する
以下の手順で、フォームにコントロールを配置します。
プロジェクトのテンプレートから[標準フォーム]を選択し、新規にプロジェクトを作成します。
フォームを開き、スタティックテキストコントロール1個と、コマンドボタンコントロール3個を、下図のように配置します。
ポイント
プロジェクトの作成方法は、「4.1 プロジェクトを作成する」を、コントロールの配置方法は、「4.2 フォームを編集する」を参照してください。
コントロールを配列化する
以下の手順で、コマンドボタンコントロールを配列化します。
左側に配置したコマンドボタンコントロール"CmCommand1"を選択します。
ポップアップメニューの[配列化]サブメニューから[新規作成]コマンドを選択します。
プロジェクトウィンドウのデザインツリーウィンドウ上で、配列名"CmCommand1"を"ArrayButton1"に変更します。
フォーム編集ウィンドウに戻り、中央に配置したコマンドボタンコントロール"CmCommand2"を選択します。
ポップアップメニューの[配列化]サブメニューから[ArrayButton1]コマンドを選択します。
同様にして、右側に配置したコマンドボタンコントロール"CmCommand3"を選択し、ポップアップメニューの[配列化]サブメニューから[ArrayButton1]コマンドを選択します。
プロジェクトウィンドウのデザインツリーウィンドウで、"ArrayButton1[配列]"に3個のコマンドボタンコントロールが含まれていることを確認します。
ポイント
列化するための、その他の操作方法については、「5.2.5 コントロールを配列化して利用する」を参照してください。
配列化したコントロールの手続きを記述する
複数のコントロールを配列化すると、イベント手続きはそれぞれのコントロールがもつのではなく、同じイベント手続きを共有することになります。つまり、どのコントロールでイベントが発生しても同じイベント手続きが実行されるということです。
配列化しているコントロールのイベント手続きを編集する場合、イベント手続きの引数として、イベントが発生したコントロールのインデックス(POW-INDEX)が追加されます。このデータ項目を参照することにより、配列内のどのコントロールでイベントが発生したか知ることができます。配列内のコントロールがもつインデックスは、プロパティ設定ダイアログボックスの[共通]タブにある、[インデックス]の値です。
このサンプルプログラムでは、以下のように動作する手続きを記述します。
左側(インデックスが1)のボタンをクリックすると、スタティックテキストコントロールの背景色が赤に変化します。
中央(インデックスが2)のボタンをクリックすると、スタティックテキストコントロールの背景色が緑に変化します。
右側(インデックスが3)のボタンをクリックすると、スタティックテキストコントロールの背景色が青に変化します。
手続きは、以下のようになります。
ArrayButton1-Click
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 W-COLOR PIC S9(9) COMP-5. LINKAGE SECTION. 01 POW-INDEX PIC S9(9) COMP-5. PROCEDURE DIVISION USING POW-INDEX. * クリックしたコマンドボタンのインデックスから背景色を決めます。 EVALUATE POW-INDEX WHEN 1 MOVE POW-COLOR-RED TO W-COLOR WHEN 2 MOVE POW-COLOR-GREEN TO W-COLOR WHEN 3 MOVE POW-COLOR-BLUE TO W-COLOR END-EVALUATE * スタティックテキストの背景色を設定します。 MOVE W-COLOR TO "BackColor" OF CmStatic1