フォームイベント
フォームイベントとは、フォームメソッドやフォームオブジェクトメソッドの実行につながるイベントのことです。 フォームイベントにより、アプリケーションの流れをコントロールしたり、特定のイベントが発生したときにのみ実行されるコードを書くことができます。
コードの中では、トリガーされたイベントを返す FORM Event
コマンドを使ってイベントを制御します。 例:
// ボタンのコード
If(FORM Event.code=On Clicked)
// ボタンがクリックされたときの動作
End if
すべてのフォームとフォーム上のすべてのアクティブなオブジェクトは、事前に定義されたイベントのセットを受け取ることができますが、フォームやオブジェクト毎に有効にされたイベントだけが実際に発生します。
イベントオブジェクト
各イベントは、FORM Event
コマンドによってオブジェクトとして返されます。 デフォルトで、以下のプロパティが含まれています:
プロパティ | タイプ | 説明 |
---|---|---|
objectName | text | イベントをトリガーしているオブジェクト名。フォームによってトリガーされている場合には含まれていません。 |
code | longint | フォームイベントの数値。 Form event code によっても返されます。 |
description | text | フォームイベント名 (例: "On After Edit") |
イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。 特に:
- リストボックス および リストボックス列 は、
columnName
やisRowSelected
といった、追加のプロパティ を返します。 - 4D View Pro エリア は、
sheetName
やaction
といったプロパティを On After Edit イベントオブジェクトに返します。
イベントとメソッド
フォームイベントが発生すると、4D は以下のアクションをおこないます:
- まず 4D は、フォーム中のオブジェクトをブラウズし、発生したオブジェクトイベントがプロパティで選択されているすべてのオブジェクトのオブジェクトメソッドを呼び出します。
- 次に、発生したイベントに対応するフォームイベントがフォームのプロパティで選択されていれば、フォームメソッドを呼び出します。
オブジェクトメソッドが特定の順序で呼び出されることを期待することはできません。 おおまかに言って、オブジェクトメソッドは常にフォームメソッドよりも前に呼び出されます。 オブジェクトがサブフォームの場合、サブフォームのリストフォームのオブジェクトメソッドが呼び出され、次にリストフォームのフォームメソッドが呼び出されます。 そして 4D は引き続き、親フォームのオブジェクトメソッドを呼び出します。 つまり、オブジェクトがサブ フォームの時、 4D はサブフォームオブジェクト内で、オブジェクトとフォームメソッドと同じルールを適用します。
On Load と On Unload イベントを除き (後述参照)、発生したイベントがフォームイベントプロパティで選択されていなかったとしても、オブジェクトプロパティで選択されていれば、そのオブジェクトメソッドの呼び出しが妨げられることはありません。 言い換えれば、フォームレベルでイベントを有効あるいは無効にしても、オブジェクトイベントプロパティには影響ありません。
特定のイベントに関連するオブジェクトの数は、イベントの性質により異なります。
イベント一覧
以下の表は、それぞれのイベントごとにどのようにオブジェクトメソッドとフォームメソッドが呼ばれるかを概説します:
イベント | オブジェクトメソッド | フォームメソッド | 対象オブジェクト |
---|---|---|---|
On Load | ◯ | ◯ | すべてのオブジェクト |
On Unload | ◯ | ◯ | すべてのオブジェクト |
On Validate | ◯ | ◯ | すべてのオブジェクト |
On Clicked | ◯ | ◯ | 関係するオブジェクトのみ |
On Double Clicked | ◯ | ◯ | 関係するオブジェクトのみ |
On Before Keystroke | ◯ | ◯ | 関係するオブジェクトのみ |
On After Keystroke | ◯ | ◯ | 関係するオブジェクトのみ |
On After Edit | ◯ | ◯ | 関係するオブジェクトのみ |
On Getting Focus | ◯ | ◯ | 関係するオブジェクトのみ |
On Losing Focus | ◯ | ◯ | 関係するオブジェクトのみ |
On Activate | X | ◯ | なし |
On Deactivate | X | ◯ | なし |
On Outside Call | X | ◯ | なし |
On Page Change | X | ◯ | なし |
On Begin Drag Over | ◯ | ◯ | 関係するオブジェクトのみ |
On Drop | ◯ | ◯ | 関係するオブジェクトのみ |
On Drag Over | ◯ | X | 関係するオブジェクトのみ |
On Mouse Enter | ◯ | ◯ | すべてのオブジェクト |
On Mouse Move | ◯ | ◯ | すべてのオブジェクト |
On Mouse Leave | ◯ | ◯ | すべてのオブジェクト |
On Mouse Up | ◯ | X | 関係するオブジェクトのみ |
On Menu Selected | X | ◯ | なし |
On Bound variable change | X | ◯ | なし |
On Data Change | ◯ | ◯ | 関係するオブジェクトのみ |
On Plug in Area | ◯ |