4D v13.4

ポップアップメニュー、ドロップダウンリスト

ホーム

 
4D v13.4
ポップアップメニュー、ドロップダウンリスト

ポップアップメニュー、ドロップダウンリスト  


 

ポップアップメニューやドロップダウンリストは、リストから選択を行えるようにするためのオブジェクトです。ポップアップメニューに表示される項目は配列を用いて管理します。

配列はメモリ上に置かれた値のリストであり、配列名を用いて参照されます (配列とフォームオブジェクト参照)。ポップアップメニューやドロップダウンリストをクリックすると、値のリストとして配列が表示されます。

“ポップアップメニュー”および“ドロップダウンリスト”という名前は、同じタイプのオブジェクトのことを意味します。“ポップアップメニュー”はMac OS の用語であり、“ドロップダウンリスト”はWindows の用語です。

次の例に示すように、これらのオブジェクトの外観はプラットフォームによって若干異なります: 

Windows
Mac OS

このオブジェクトを初期化するには、値のリストを配列にロードします。複数の方法で初期化を行うことができます:
  • プロパティリストでデフォルト値のリストを入力します。これを行うには、プロパティリストのデータソーステーマにおいて”デフォルト値”フィールドの編集...ボタンをクリックします。詳細についてはデフォルト値のリストを参照してください。このデフォルト値は、配列へ自動的にロードされます。オブジェクトに関連付けた変数名を使用して、この配列を参照することができます。
  • オブジェクトが表示される前に、値を配列要素に代入するコードを実行します。例えば:
     ARRAY TEXT(aCities;6)
     aCities{1}:="Philadelphia"
     aCities{2}:="Pittsburg"
     aCities{3}:="Grand Blanc"
     aCities{4}:="Bad Axe"
     aCities{5}:="Frostbite Falls"
     aCities{6}:="Green Bay"

    この場合フォームのオブジェクトに関連付けた変数名はaCitiesでなければなりません。
    このコードはフォームメソッド内に置かれ、On Loadフォームイベントが発生すると実行されます。
  • オブジェクトが表示される前にLIST TO ARRAYコマンドを使用してリストの値を配列にロードします。例えば:
     LIST TO ARRAY("Cities";aCities)

    この場合フォームのオブジェクトに関連付けた変数名はaCitiesでなければなりません。
    このコードは、前述した代入命令文の代わりに実行できます。

ユーザが行った選択内容をフィールドに保存する必要があれば、レコードの登録後に代入命令を実行します。これを行うには、オブジェクトメソッドに次のようなCase文を作成します:

 C_LONGINT($event)
 $event:=Form event
 
 Case of
    :($event=On Load)
       LIST TO ARRAY("Cities";aCities)
       If(Record number([People])<0) // 新規レコード
          aCities:=3 // デフォルト値を表示
       Else // 既存レコード、格納された値を表示
          aCities:=Find in array(aCities;City)
       End if
    :($event=On Clicked// ユーザーが選択を変更した
       City:=aCities{aCities// フィールドに値を代入
    :($event=On Validate)
       City:=aCities{aCities}
    :($event=On Unload)
       CLEAR VARIABLE(aCities)
 End case

プロパティリストのイベントテーマにおいて、作成したCase 文の中でテストする各イベントを選択します。

常に配列には有限数の項目が納められます。項目リストは動的であり、メソッドを用いて変更可能です。配列の項目は変更したり、並び替えや追加を行うことができます。

配列の作成と使用に関する詳細は4Dランゲージリファレンスの配列を参照してください。

ページ指定標準アクションをポップアップメニュー/ドロップダウンリストに割り当てることができます(プロパティリストの"アクション"テーマ)。このアクションを選択すると、4D はドロップダウンリストで選択されたオブジェクトの番号と一致するフォームのページを自動的に表示します。

例えばユーザーがリストの3 番目の項目を選択すると、4Dはカレントフォームの3 ページ目(存在する場合)を表示します。項目を選択した結果をプログラムで管理したい場合は動作なしを選択します。

 
プロパティ 

プロダクト: 4D
テーマ: アクティブオブジェクトを使用する