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

フォームイベント

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

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

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

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

イベントオブジェクト​

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

プロパティ型説明
objectNametextイベントをトリガーしているオブジェクト名。フォームによってトリガーされている場合には含まれていません。

Form event code によっても返されます。| |description|text|フォームイベント名 (例: "On After Edit")|

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

イベントとメソッド​

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

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

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

On Load と On Unload イベントを除き (後述参照)、発生したイベントがフォームイベントプロパティで選択されていなかったとしても、オブジェクトプロパティで選択されていれば、そのオブジェクトメソッドの呼び出しが妨げられることはありません。言い換えれば、フォームレベルでイベントを有効あるいは無効にしても、オブジェクトイベントプロパティには影響ありません。

特定のイベントに関連するオブジェクトの数は、イベントの性質により異なります。

イベント一覧​

以下の表は、それぞれのイベントごとにどのようにオブジェクトメソッドとフォームメソッドが呼ばれるかを概説します:

イベントコードオブジェクトメソッドフォームメソッド対象オブジェクト
On Activate11X◯なし
On After Edit45◯◯関係するオブジェクトのみ
On After Keystroke28◯◯関係するオブジェクトのみ
On After Sort30◯ (リストボックス)X関係するオブジェクトのみ
On Alternative Click38◯ (ボタンとリストボックス)X関係するオブジェクトのみ
On Before Data Entry41◯ (リストボックス)X関係するオブジェクトのみ
On Before Keystroke17◯◯関係するオブジェクトのみ
On Begin Drag Over46◯◯関係するオブジェクトのみ
On Begin URL Loading47◯ (Webエリア)X関係するオブジェクトのみ
On Bound variable change54X◯なし
On Clicked4◯◯関係するオブジェクトのみ
On Close Box22X◯なし
On Close Detail26◯ (リストボックス)◯リストボックスのみ
On Collapse44◯ (階層リストとリストボックス)X関係するオブジェクトのみ
On Column Moved32◯ (リストボックス)X関係するオブジェクトのみ
On Column Resize33◯ (リストボックスと 4D View Pro エリア)X関係するオブジェクトのみ
On Data Change20◯◯関係するオブジェクトのみ
On Deactivate12X◯なし
On Delete Action58◯ (階層リストとリストボックス)X関係するオブジェクトのみ
On Display Detail8◯◯すべてのオブジェクト
On Double Clicked13◯◯関係するオブジェクトのみ
On Drag Over21◯X関係するオブジェクトのみ
On Drop16◯◯関係するオブジェクトのみ
On End URL Loading49◯ (Webエリア)X関係するオブジェクトのみ
On Expand43◯ (階層リストとリストボックス)X関係するオブジェクトのみ
On Footer Click57◯ (リストボックス)X関係するオブジェクトのみ
On Getting Focus15◯◯関係するオブジェクトのみ
On Header5◯◯すべてのオブジェクト
On Header Click42◯ (リストボックスと 4D View Pro エリア)X関係するオブジェクトのみ
On Load1◯◯すべてのオブジェクト
On Load Record40X◯なし
On Long Click39◯ (ボタン)◯関係するオブジェクトのみ
On Losing Focus14◯◯関係するオブジェクトのみ
On Menu Selected18X◯なし
On Mouse Enter35◯◯すべてのオブジェクト
On Mouse Leave36◯◯すべてのオブジェクト
On Mouse Move37◯◯すべてのオブジェクト
On Mouse Up2◯X関係するオブジェクトのみ
On Open Detail25◯ (リストボックス)◯リストボックスのみ
On Open External Link52◯ (Webエリア)X関係するオブジェクトのみ
On Outside Call10X◯なし
On Page Change56X◯なし
On Plug in Area19◯◯関係するオブジェクトのみ
On Printing Break6◯◯すべてのオブジェクト
On Printing Detail23◯◯すべてのオブジェクト
On Printing Footer7◯◯すべてのオブジェクト
On Resize29X◯なし
On Row Moved34◯ (リストボックス)X関係するオブジェクトのみ
On Row Resize60◯ (4D View Pro エリア)X関係するオブジェクトのみ
On Scroll59◯X関係するオブジェクトのみ
On Selection Change31◯◯関係するオブジェクトのみ
On Timer27X◯なし
On Unload24◯◯すべてのオブジェクト
On URL Filtering51◯ (Webエリア)X関係するオブジェクトのみ
On URL Loading Error50◯ (Webエリア)X関係するオブジェクトのみ
On URL Resource Loading48◯ (Webエリア)X関係するオブジェクトのみ
On Validate3◯◯すべてのオブジェクト
On VP Range Changed61◯ (4D View Pro エリア)X関係するオブジェクトのみ
On VP Ready9◯ (4D View Pro エリア)X関係するオブジェクトのみ
On Window Opening Denied53◯ (Webエリア)X関係するオブジェクトのみ

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

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