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

フォームイベント

フォームイベントとは、フォームメソッドやフォームオブジェクトメソッドの実行につながるイベントのことです。 フォームイベントにより、アプリケーションの流れをコントロールしたり、特定のイベントが発生したときにのみ実行されるコードを書くことができます。

コードの中では、トリガーされたイベントを返す FORM Event コマンドを使ってイベントを制御します。 例:

// ボタンのコード
If(FORM Event.code=On Clicked)
// ボタンがクリックされたときの動作
End if

すべてのフォームとフォーム上のすべてのアクティブなオブジェクトは、事前に定義されたイベントのセットを受け取ることができますが、フォームやオブジェクト毎に有効にされたイベントだけが実際に発生します。

イベントオブジェクト

各イベントは、FORM Event コマンドによってオブジェクトとして返されます。 デフォルトで、以下のプロパティが含まれています:

プロパティ説明
objectNametextイベントをトリガーしているオブジェクト名。フォームによってトリガーされている場合には含まれていません。
codelongintフォームイベントの数値。 Form event code によっても返されます。
descriptiontextフォームイベント名 (例: "On After Edit")

イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。 特に:

イベントとメソッド

フォームイベントが発生すると、4D は以下のアクションをおこないます:

  • まず 4D は、フォーム中のオブジェクトをブラウズし、発生したオブジェクトイベントがプロパティで選択されているすべてのオブジェクトのオブジェクトメソッドを呼び出します。
  • 次に、発生したイベントに対応するフォームイベントがフォームのプロパティで選択されていれば、フォームメソッドを呼び出します。

オブジェクトメソッドが特定の順序で呼び出されることを期待することはできません。 おおまかに言って、オブジェクトメソッドは常にフォームメソッドよりも前に呼び出されます。 オブジェクトがサブフォームの場合、サブフォームのリストフォームのオブジェクトメソッドが呼び出され、次にリストフォームのフォームメソッドが呼び出されます。 そして 4D は引き続き、親フォームのオブジェクトメソッドを呼び出します。 つまり、オブジェクトがサブフォームの時、 4D はサブフォームオブジェクト内で、オブジェクトとフォームメソッドと同じルールを適用します。

On LoadOn 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 ActivateXなし
On DeactivateXなし
On Outside CallXなし
On Page ChangeXなし
On Begin Drag Over関係するオブジェクトのみ
On Drop関係するオブジェクトのみ
On Drag OverX関係するオブジェクトのみ
On Mouse Enterすべてのオブジェクト
On Mouse Moveすべてのオブジェクト
On Mouse Leaveすべてのオブジェクト
On Mouse UpX関係するオブジェクトのみ
On Menu SelectedXなし
On Bound variable changeXなし
On Data Change関係するオブジェクトのみ
On Plug in Area関係するオブジェクトのみ
On Headerすべてのオブジェクト
On Printing Detailすべてのオブジェクト
On Printing Breakすべてのオブジェクト
On Printing Footerすべてのオブジェクト
On Close BoxXなし
On Display Detailすべてのオブジェクト
On Open Detail◯ (リストボックス)リストボックスのみ
On Close Detail◯ (リストボックス)リストボックスのみ
On ResizeXなし
On Selection Change関係するオブジェクトのみ
On Load RecordXなし
On TimerXなし
On ScrollX関係するオブジェクトのみ
On Before Data Entry◯ (リストボックス)X関係するオブジェクトのみ
On Column Moved◯ (リストボックス)X関係するオブジェクトのみ
On Row Moved◯ (リストボックス)X関係するオブジェクトのみ
On Column Resize◯ (リストボックスと 4D View Pro エリア)X関係するオブジェクトのみ
On Header Click◯ (リストボックスと 4D View Pro エリア)X関係するオブジェクトのみ
On Footer Click◯ (リストボックス)X関係するオブジェクトのみ
On After Sort◯ (リストボックス)X関係するオブジェクトのみ
On Long Click◯ (ボタン)関係するオブジェクトのみ
On Alternative Click◯ (ボタンとリストボックス)X関係するオブジェクトのみ
On Expand◯ (階層 リストとリストボックス)X関係するオブジェクトのみ
On Collapse◯ (階層 リストとリストボックス)X関係するオブジェクトのみ
On Delete Action◯ (階層 リストとリストボックス)X関係するオブジェクトのみ
On URL Resource Loading◯ (Webエリア)X関係するオブジェクトのみ
On Begin URL Loading◯ (Webエリア)X関係するオブジェクトのみ
On URL Loading Error◯ (Webエリア)X関係するオブジェクトのみ
On URL Filtering◯ (Webエリア)X関係するオブジェクトのみ
On End URL Loading◯ (Webエリア)X関係するオブジェクトのみ
On Open External Link◯ (Webエリア)X関係するオブジェクトのみ
On Window Opening Denied◯ (Webエリア)X関係するオブジェクトのみ
On VP Range Changed◯ (4D View Pro エリア)X関係するオブジェクトのみ
On VP Ready◯ (4D View Pro エリア)X関係するオブジェクトのみ
On Row Resize◯ (4D View Pro エリア)X関係するオブジェクトのみ

イベントに対応するプロパティが選択されている場合にのみ、フォームやオブジェクトのメソッドが呼び出されることに留意してください。 デザインモードのフォームエディターのプロパティリストでイベントを無効にすると、メソッドが呼び出される回数を減らすことができ、フォームの実行速度を最適化できます。

警告: オブジェクトの On LoadOn Unload イベントが生成されるには、オブジェクトとオブジェクトが属するフォームの両方で有効にされていなければなりません。 オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。これら 2つのイベントはフォームレベルでも有効にされていなければなりません。