フォームオブジェクト
フォーム上のオブジェクトを編集することで、アプリケーションのフォームを構築しカスタマイズします。 オブジェクトの追加・配置、オブジェクトプロパティの設定、入力規制の追加によるビジネスルールの強化、操作に対して自動実行されるオブジェクトメソッドの追加などをおこなうことができます。
アクティブオブジェクトとスタティックオブジェクト
4D フォームでは多くのビルトイン アクティブ オブジェクトおよび スタティック オブジェクトが提供されています:
- アクティブオブジェクト はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。
- スタティックオブジェクト (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。
オブジェクトの操作
4D フォームオブジェクトの追加や編集は次の方法でおこなえます:
-
フォームエディター: ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。
-
4D ランゲージ:
OBJECT DUPLICATEorOBJECT SET FONT STYLEなどの、Objects (Forms)テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 -
ダイナミックフォーム内の JSON コード: JSON を使ってプロパティを定義します。 type プロパティでオブジェクトタイプを定義し、提供されている他の プロパティ のうち必要なものを設定します。 次はボタンオブジェクトの例です:
{
"type": "button",
"style": "bevel",
"text": "OK",
"action": "Cancel",
"left": 60,
"top": 160,
"width": 100,
"height": 20
}
名前またはデータソースを使用してそのフォームオブジェクトに4Dランゲージでアクセスする
オブジェクト(フォーム)、 リストボックス、あるいは スタイル付きテキスト テーマのコマンドなど、フォームオブジェクトを管理する多数のコマンドは、ここで説明されている汎用的なシンタックスを共有します:
COMMAND NAME( * ; *object* : Text { ; *additional parameters* } )
//or
COMMAND NAME( *object* : Variable, Field { ; *additional parameters* })
* 引数を指定した場合、object 引数がオブジェクト名(文字列)であることを指定します。 * を渡さなかった場合、object 引数がフィールドまたは変数である、つまりデータソース であることを指定します。
オブジェクト名 を使用する場合、@ 文字を名前内で使用することで、一度の呼び出しでフォーム内の複数のオブジェクトを指定することができます。 以下の表は、このコマンドで指定可能なオブジェクト名の一例を表しています。
| オブジェクト名 | 呼び出しで影響を受けるオブジェクト |
|---|---|
| mainGroupBox | mainGroupBox というオブジェクトのみ。 |
| main@ | “main” で始まる名前を持ったオブジェクト。 |
| @GroupBox | “GroupBox” で終わる名前を持ったオブジェクト。 |
| @Group@ | “Group” を名前に含むオブジェクト。 |
| main@Btn | “main” で始まり、“Btn” で終わる名前を持つオブジェクト。 |
| @ | フォーム内にある全てのオブジェクト。 |
フォームオブジェクトの名前は255 バイトまで格納することができ、これにより"xxxx_Button" あるいは "xxx_Mac"などのカスタムの命名規則を定義して適用することができます。
また@ が文字列内に含まれている場合に@ 文字がどのように解釈されるかを設定 ことができます。 このオプションはフォームオブジェクトコマンドの振る舞いに影響します。