メインコンテンツまでスキップ
バージョン: 18

オブジェクト


必須設定です。

このプロパティは アクティブまたはスタティックなフォームオブジェクト のタイプを指定します。

JSON 文法

名称データタイプとりうる値
typestring"button", "buttonGrid", "checkbox", "combo", "dropdown", "groupBox", "input", "line", "list", "listbox", "oval", "picture", "pictureButton", "picturePopup", "plugin", "progress", "radio", "rectangle", "ruler", "spinner", "splitter", "stepper", "subform", "tab", "text", "view", "webArea", "write"

対象オブジェクト

4D View Pro エリア - 4D Write Pro エリア - ボタン - ボタングリッド - チェックボックス - コンボボックス - ドロップダウンリスト - グループボックス - 階層リスト - リストボックス - リストボックス列 - リストボックスフッター - リストボックスヘッダー - ピクチャーボタン - ピクチャーポップアップメニュー - プラグインエリア - 進捗インジケーター - ラジオボタン - スピナー - スプリッター - スタティックピクチャー - ステッパー - サブフォーム - タブコントロール - テキストエリア - Web エリア


オブジェクト名

各アクティブフォームオブジェクトにはオブジェクト名が関連付けられています。 各オブジェクト名はユニークでなければなりません。

オブジェクト名のサイズ上限は 255バイトです。

4Dランゲージを使用する際、オブジェクト名を使用してアクティブフォームオブジェクトを参照できます (詳細については 4Dランゲージリファレンスの オブジェクトプロパティ を参照ください)。

フォームオブジェクトの命名規則については 識別子 の章を参照してください。

JSON 文法

名称データタイプとりうる値
namestring既存オブジェクトによって使用されていない、命名規則に沿った名称

対象オブジェクト

4D View Pro エリア - 4D Write Pro エリア - ボタン - ボタングリッド - チェックボックス - コンボボックス - ドロップダウンリスト - グループボックス - 階層リスト - リストボックス - リストボックス列 - リストボックスフッター - リストボックスヘッダー - ピクチャーボタン - ピクチャーポップアップメニュー - プラグインエリア - 進捗インジケーター - スピナー - スプリッター - スタティックピクチャー - ステッパー - ラジオボタン - サブフォーム - タブコントロール - テキストエリア - Web エリア


変数あるいは式

セレクションおよびコレクション型のリストボックス列に関しては の章も参照ください。

このプロパティは、データのソースを指定します。 各アクティブフォームオブジェクトにはオブジェクト名と変数名が関連付けられています。 変数名とオブジェクト名は違っていてもかまいません。 同じフォーム内で複数のアクティブオブジェクトに同じ変数名を割り当てることができますが、オブジェクト名 はそれぞれユニークでなければなりません。

変数名の上限は 31バイトです。 命名規則については 識別子 の章を参照してください。

フォームオブジェクト変数を使って、オブジェクトを監視・コントロールすることができます。 たとえば、ボタンがクリックされると、その変数の値は 1 に設定されます。それ以外の場合は 0 です。 進捗インジケーターに関連づけられた式は、現設定の取得・変更を可能にします。

代入可・代入不可の変数および式が使用でき、取得できるデータ型はテキスト、整数、数値、日付、時間、ピクチャー、ブール、そしてオブジェクトです。

オブジェクトのデータソースとして式を指定することができます。 有効な 4D式であれば何でも受け入れられます。シンプルな式、フォーミュラ、4D関数、プロジェクトメソッド名、標準の [Table]Field シンタックスを使用したフィールド名を使用できます。 式はフォームが実行されたときに評価され、フォームイベント毎に再評価されます。 式には、代入可および代入不可の式 があることに注意が必要です。

入力された式が、変数名とメソッド名の両方で使用されている場合、4Dはメソッド名が指定されたものと判断します。

ダイナミック変数

ボタン、入力オブジェクト、チェックボックス等のフォームオブジェクトに割り当てられる変数を、必要に応じて動的に、4Dに作成させることができます。 これをおこなうには、"変あるいは式" プロパティを空にします (あるいは JSON の dataSource フィールド):

変数名が与えられていない場合、4D はフォームがロードされたときにインタープリターのプロセス変数の空間内でユニークな名前を計算し、その名前でオブジェクト用の変数を新規作成します (このメカニズムはコンパイルモードでも使用することができます)。 この一時的な変数はフォームが閉じられるときに破棄されます。 この方式をコンパイルモードで動作させるためには、ダイナミック変数の型を明示的に指定しなければなりません。 これをおこなうには 2つの方法があります:

  • プロパティリストの 式タイプ を使用して型を指定する。
  • たとえば VARIABLE TO VARIABLE コマンドを使用する、専用の初期化コードをフォームロード時に実行する。
 If(Form event=On Load)
C_TEXT($init)
$Ptr_object:=OBJECT Get pointer(Object named;"comments")
$init:=""
VARIABLE TO VARIABLE(Current process;$Ptr_object->;$init)
End if

4Dコード中では、 OBJECT Get pointer コマンドで取得できるポインターを介してダイナミック変数にアクセスできます。 例:

  // "tstart" オブジェクトの変数に時刻 12:00:00 を代入します
$p :=OBJECT Get pointer(Object named;"tstart")
$p->:=?12:00:00?

このメカニズムを使用する利点は 2つあります:

  • ひとつのホストフォーム上で複数個配置することの可能な "サブフォーム" タイプのコンポーネント開発を可能にします。 たとえば、開始日と終了日を設定する 2つの日付ピッカーサブフォームをホストフォーム上に配置するケースを考えてみましょう。 このサブフォームでは、日付を選択するためのオブジェクトが使用されます。 開始日と終了日をそれぞれ選択できるよう、これらオブジェクトにはそれぞれ別の変数が割り当てられている必要があります。 4Dにダイナミック変数を生成させることでユニークな変数を得ることができ、この問題を解決できます。
  • また、メモリの利用を減少させることができます。 フォームオブジェクトでは、プロセス変数とインタープロセス変数しか使用できません。 しかしコンパイルモードでは、各プロセス変数のインスタンスが (サーバープロセスを含め) すべてのプロセスに対して作成されます。 このインスタンスは、セッション中にフォームが使用されない場合でもメモリを消費します。 フォームのロード時、4Dにダイナミック変数を作成させることで、メモリを節約できます。

配列リストボックス

配列型リストボックスの場合、リストボックスおよびリストボックス各列の 変数あるいは式 プロパティには、それぞれに関連付ける配列変数の名前を指定します。 ただし、リストボックスの JSON定義においては、列の dataSource 値として、配列名 (文字列) のコレクションを指定すると 階層リストボックス が定義されます。

JSON 文法

名称データタイプとりうる値
dataSourcestring、または sting のコレクション

対象オブジェクト

4D View Pro エリア - 4D Write Pro エリア - ボタン - ボタングリッド - チェックボックス - コンボボックス - ドロップダウンリスト - 階層リスト - リストボックス - リストボックス列 - リストボックスヘッダー - リストボックスフッター - ピクチャーポップアップメニュー - プラグインエリア - 進捗インジケーター - スピナー - スプリッター - ステッパー - タブコントロール - サブフォーム - ラジオボタン - Web エリア


式の型/式タイプ

セレクションおよびコレクション型のリストボックス列において、このプロパティは データタイプ と呼ばれています。

オブジェクトに関連付けられた式または変数のデータ型を指定します。 この設定の主な目的は、プロパティリスト内で提供されるテーマとオプションが、データの型と対応するようにするためです。 つまり、実際に変数の型そのものを決めるわけではありません。 データベースをコンパイルするためには、コンパイラー テーマの 4Dランゲージコマンドを別途使う必要があります。

ただし、次の特定の場合には、このプロパティは型宣言の機能を持ちえます:

  • ダイナミック変数: このプロパティを使って、ダイナミック変数の型を宣言することができます。
  • リストボックス列: このプロパティは列データに表示フォーマットを関連づけるのに使用されます。 提供されるフォーマットは変数型 (配列型のリストボックス) またはデータ/フィールド型 (セレクションおよびコレクション型のリストボックス) により異なります。 使用できる標準の 4D フォーマットはテキスト、数値、整数、日付、時間、ピクチャー、そしてブールです。 テキストの場合は専用の表示フォーマットがありません。 標準フォーマットのほかに、定義したカスタムフォーマットも選択することができます。
  • ピクチャー変数: このプロパティを使うと、インタープリタモードにおいてフォームロード前に変数を宣言することができます。 フォーム上のピクチャー変数にピクチャーを表示する際には特別なメカニズムが使用されます。 そのため、他の型の変数とは違って、ピクチャー変数の宣言は、フォームロード前 (On Load フォームイベントよりも先) におこなう必要があります。 このため、フォームを呼び出す前 (たとえば DIALOG コマンドを呼び出す前) にC_PICTURE(varName) を実行するか、あらかじめプロパティリストの式の型にピクチャーを選択しておく必要があります。 このいずれかをおこなわない場合、ピクチャー変数はピクチャーを正しく表示できません (インタープリターモードのみ)。

JSON 文法

名称データタイプとりうる値
dataSourceTypeHintstring
  • 標準のオブジェクト: "integer", "boolean", "number", "picture", "text", date", "time", "arrayText", "arrayDate", "arrayTime", "arrayNumber", "collection", "object", "undefined"
  • リストボックス列: "boolean", "number", "picture", "text", date", (配列/セレクションリストボックスのみ "integer", "time", "object")

対象オブジェクト

チェックボックス - コンボボックス - ドロップダウンリスト - 入力 - リストボックス列 - リストボックスフッター - プラグインエリア - 進捗インジケーター - ラジオボタン - ルーラー - スピナー - ステッパー - サブフォーム - タブコントロール


CSSクラス

css ファイルにてクラスセレクターとして使用される、(複数の場合は半角スペース区切りの) クラス名のリスト。

JSON 文法

名称データタイプとりうる値
classstring(複数の場合は半角スペース区切りの) クラス名の文字列

対象オブジェクト

4D View Pro エリア - 4D Write Pro エリア - ボタン - ボタングリッド - チェックボックス - コンボボックス - ドロップダウンリスト - グループボックス - 階層リスト - リストボックス - ピクチャーボタン - ピクチャーポップアップメニュー - プラグインエリア - ラジオボタン - スタティックピクチャー - サブフォーム - テキストエリア - Web エリア


コレクションまたはエンティティセレクション

コレクション要素あるいはエンティティを使用して、リストボックスの行の中身を定義することができます。

コレクションあるいはエンティティセレクションを返す式を入力します。 一般的には、コレクションまたはエンティティセレクションを格納している変数名、コレクション要素、あるいはプロパティを入力します。

コレクションおよびエンティティセレクションは、フォームロード時にフォームから利用可能でなければなりません。 コレクションの各要素、あるいはエンティティセレクションの各エンティティは、リストボックスの行へと割り当てられ、This コマンドを通してオブジェクトとして利用可能です:

  • オブジェクトのコレクションを使用した場合、データソース式内で This コマンドを呼び出すことで、各プロパティ値にアクセスすることが可能です。例: This.<propertyPath>
  • エンティティセレクションを使用した場合、データソース式内で This コマンドを呼び出すことで、各属性値へとアクセスすることが可能です。例: This.<attributePath>

(オブジェクトでない) スカラー値のコレクションを使用した場合、データソース式内で This.value を呼び出すことで、各値にアクセスすることが可能です。 ただし、この場合は値を編集したり、"カレントの項目" オブジェクトにアクセスしたりすることはできません (以下参照)。
注: エンティティセレクションについての詳細については、ORDA の章を参照ください。

JSON 文法

名称データタイプとりうる値
dataSourcestringコレクションあるいはエンティティセレクションを返す式

対象オブジェクト

リストボックス


データソース

リストボックスの種類を指定します。

  • 配列 (デフォルト): リストボックスの各行に 配列要素を割り当てます。
  • カレントセレクション: 指定したテーブルのカレントセレクションの各レコードごとに式、フィールド、メソッドが評価されます。
  • 命名セレクション: 指定した命名セレクションに含まれる各レコードごとに式、フィールド、メソッドが評価されます。
  • コレクションまたはエンティティセレクション: コレクション要素あるいはエンティティを使用してリストボックスの行の中身を定義します。 この場合 コレクションまたはエンティティセレクション プロパティを定義する必要があります。

JSON 文法

名称データタイプとりうる値
listboxTypestring"array", "currentSelection", "namedSelection", "collection"

対象オブジェクト

リストボックス


プラグインの種類

オブジェクトに関連付ける プラグインが提供する外部エリア の名称。 ここで指定する名称は、プラグインの manifest.json ファイルにて公開されています。

JSON 文法

名称データタイプとりうる値
pluginAreaKindstringプラグインが提供する外部エリアの、% 文字で始まる名称 (プロパティリストの候補表示では、この % 文字は表示されません)

対象オブジェクト

プラグインエリア


ラジオグループ

複数のラジオボタンを連動させるためのプロパティです。同じラジオグループに属している複数のラジオボタンは、一度にその内の一つのみを選択することができます。

JSON 文法

名称データタイプとりうる値
radioGroupstringラジオグループ名

対象オブジェクト

ラジオボタン


タイトル

オブジェクトにラベルを追加します。 このラベルのフォントとスタイルは指定することができます。

\文字 (バックスラッシュまたは円マーク) を使用すると、ラベル内で強制的に改行することができます。

ラベルに \ を表示したい場合は \\ と入力します。

デフォルトでラベルはオブジェクトの中央に置かれます。 またオブジェクトにアイコンも含まれている場合、タイトル/ピクチャー位置 プロパティを用いて、これら2 つの要素の相対位置を変更することができます。

インターフェースの翻訳の目的で、XLIFF 参照をボタンのタイトルエリアに入力することができます (付録 B: XLIFFアーキテクチャー 参照)。

JSON 文法

名称データタイプとりうる値
textstringなんらかのテキスト

対象オブジェクト

ボタン - チェックボックス - リストボックスヘッダー - ラジオボタン - テキストエリア


変数の計算

このプロパティは、リストボックスフッター エリアに適用される計算タイプを設定します。

リストボックスのフッターに割り当てる自動計算は LISTBOX SET FOOTER CALCULATION 4D コマンドを使用しても設定できます。

様々な自動計算が利用可能です。 以下の表は、列のデータ型に応じて使用することのできる計算と、(コードで明示的に宣言されていないとき) 4D によってフッター変数に自動で割り当てられる型を示しています:

計算タイプ数値テキストDateTimeブールピクチャーフッター変数の型
最小列の型と同じ
最大列の型と同じ
合計列の型と同じ
カウントLongint
平均Real
標準偏差(*)Real
分散(*)Real
平方和(*)Real
カスタム (JSON では "none")制限なし

(*) 配列型のリストボックスのみ

計算が選択されると、リストボックス列内のすべての値が自動計算の対象となります。 リストボックス行の表示/非表示状態は考慮されません。 表示行だけを計算対象にしたい場合、カスタムを選択してプログラムコードで計算しなくてはなりません。

カスタム (JSON では "none") を選択した場合、4D は自動計算をおこないません。プログラムを使用して表示する値をエリアの変数に代入しなければなりません。

以下のフッターに対しては自動計算を関連付けることができません:

JSON 文法

名称データタイプとりうる値
variableCalculationstring"none", "minimum", "maximum", "sum", "count", "average", "standardDeviation", "variance", "sumSquare"

対象オブジェクト

リストボックスフッター