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

OBJECT SET EVENTS

OBJECT SET EVENTS ( {* ;} object ; arrEvents ; mode )

引数説明
*演算子指定時:object はオブジェクト名(文字列)、省略時:object は変数またはフィールド
objectanyオブジェクト名または""( * 指定時)、または変数やフィールド( * 省略時)
arrEventsInteger array設定したいイベントの配列
modeIntegerarrEvents 引数で定義されたイベントの起動モード

このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。

説明

OBJECT SET EVENTSコマンドは、引数 object* で指定したフォームまたはオブジェクトのフォームイベントの設定を、カレントのプロセスにおいて変更します。

任意の*** 演算子を渡した場合、 object 引数でオブジェクト名を文字列で指定します。省略時には object 引数でフィールドまたは変数を指定します。

フォーム自身のイベントの設定を定義する場合は、任意の * 演算子を渡したうえで object 引数に空の文字列 "" を渡します。こうすることでカレントフォームを指定します。

**注: もしテーブルに関連したサブフォームのイベントを変更したい場合にはオブジェクト名を指定する記述法のみ有効です。

arrEvents 引数には、変更したい定義済みもしくはカスタムのフォームイベントのリストを倍長整数配列で渡します。(このとき mode 引数を使って、指定したイベントを有効にするか無効にするかを指定できます。)定義済みのイベントを指定するには、 arrEvents 配列の要素の中に以下の定数を渡します。これらの定数は "Form Events" のテーマ内にあります。

定数コメント
On Activate倍長整数11フォームウィンドウが最前面のウィンドウになった
On After Edit倍長整数45フォーカスのあるオブジェクトの内容が更新された
On After Keystroke倍長整数28フォーカスのあるオブジェクトに文字が入力されようとしている。Get edited textはこの文字を含むオブジェクトのテキストを返す
On After Sort倍長整数30(リストボックスのみ) リストボックスの列中で標準のソートが行われた
On Arrow Click倍長整数38(3Dボタンのみ)3D ボタンの"三角"エリアがクリックされた
On Before Data Entry倍長整数41(リストボックスのみ) リストボックスセルが編集モードに変更されようとしている
On Before Keystroke倍長整数17フォーカスのあるオブジェクトに文字が入力されようとしている。Get edited textはこの文字を含まないオブジェクトのテキストを返す
On Begin Drag Over倍長整数46オブジェクトがドラッグされている
On Begin URL Loading倍長整数47(Webエリアのみ) 新しいURLがWeb エリアにロードされた
On bound variable change倍長整数54サブフォームにバインドされた変数が更新された
On Clicked倍長整数4オブジェクト上でクリックされた
On Close Box倍長整数22ウィンドウのクローズボックスがクリックされた
On Close Detail倍長整数26入力フォームから離れ、出力フォームに移動しようとしている
On Collapse倍長整数44(階層リストまたは階層リストボックスのみ) クリックやキーストロークで階層リストの要素が折りたたまれた
On Column Moved倍長整数32(リストボックスのみ) リストボックスの列がユーザのドラッグ&ドロップで移動された
On Column Resize倍長整数33(リストボックスと4D View Pro) リストボックスの列幅がユーザーのマウス操作によって変更された
On Data Change倍長整数20オブジェクトのデータが変更された
On Deactivate倍長整数12フォームウィンドウが最前面のウィンドウでなくなった
On Delete Action倍長整数58(階層リストとリストボックスのみ) ユーザーが項目の削除を試みた
On Display Detail倍長整数8レコードがリスト中に、あるいは行がリストボックス中に表示されようとしている
On Double Clicked倍長整数13オブジェクト上でダブルクリックされた
On Drag Over倍長整数21データがオブジェクト上にドロップされる可能性がある
On Drop倍長整数16データがオブジェクトにドロップされた
On End URL Loading倍長整数49(Webエリアのみ) URLのすべてのリソースがロードされた
On Expand倍長整数43(階層リストまたは階層リストボックスのみ) クリックやキーストロークで階層リストの要素が展開された
On Footer Click倍長整数57(リストボックスのみ) リストボックスあるいはリストボックス列でフッターがクリックされた
On Getting Focus倍長整数15フォームオブジェクトがフォーカスを得た
On Header倍長整数5フォームのヘッダエリアが印刷あるいは表示されようとしている
On Header Click倍長整数42(リストボックスと4D View Pro) リストボックスの列ヘッダでクリックが行われた
On Load Record倍長整数40リスト更新中、更新中にレコードがロードされた (ユーザがレコード行をクリックし、フィールドが編集モードになった)
On Long Click倍長整数39(3Dボタンのみ) 3D ボタンがクリックされ、特定の時間以上マウスボタンが押され続けている
On Losing Focus倍長整数14フォームオブジェクトがフォーカスを失った
On Mac toolbar button倍長整数55Mac OSにおいて、ユーザーがツールバー管理ボタンをクリックした
On Menu Selected倍長整数18メニュー項目が選択された
On Mouse Enter倍長整数35マウスカーソルがオブジェクトの描画エリア内に入った
On Mouse Leave倍長整数36マウスカーソルがオブジェクトの描画エリアから出た
On Mouse Move倍長整数37マウスカーソルがオブジェクトの描画エリア上で (最低1ピクセル) 動いたか、変更キー(Shift, Alt, Shift Lock)が押された
イベントがオブジェクトに対してのみチェックされていた場合は、マウスカーソルがオブジェクトの描画エリア内にあった場合にのみイベントが生成されます。
On Open Detail倍長整数25出力フォームまたはリストボックスに関連付けられた詳細フォームが開かれようとしている
On Open External Link倍長整数52(Webエリアのみ) 外部URLがブラウザで開かれた
On Outside Call倍長整数10フォームがPOST OUTSIDE CALLによる呼び出しを受けた
On Picture Scroll倍長整数59マウスやキーボードを使用して、ユーザーがピクチャーフィールドや変数の内容をスクロールした。
On Plug in Area倍長整数19外部オブジェクトのオブジェクトメソッドの実行がリクエストされた
On Printing Break倍長整数6フォームのブレークエリアのひとつが印刷されようとしている
On Printing Detail倍長整数23フォームの詳細エリアが印刷されようとしている
On Printing Footer倍長整数7フォームのフッタエリアが印刷されようとしている
On Resize倍長整数29フォームウィンドウがリサイズされた
On Row Moved倍長整数34(リストボックスのみ) リストボックスの行がユーザのドラッグ&ドロップで移動された
On Row Resize倍長整数60(4D View Pro のみ) 行の高さがユーザーのマウスによって変更された
On Selection Change倍長整数31リストボックスと4D View Pro: 現在の行や列の選択が変更された リスト中のレコード: リストフォームまたはサブフォームにおいて、カレントレコードあるいはカレントセレクションの行選択が変更された 階層リスト: リスト中の選択がクリックやキーストロークなどで変更された 入力可フィールドや変数: クリックやキー押下により、選択されたテキストやカーソルの位置がエリア内で変更された
On Timer倍長整数27SET TIMERコマンドで設定した時間が経過した
On Unload倍長整数24フォームを閉じて解放しようとしている
On URL Filtering倍長整数51(Webエリアのみ) Web エリアがURLをブロックした
On URL Loading Error倍長整数50(Webエリアのみ) URLをロード中にエラーが発生した
On URL Resource Loading倍長整数48(Webエリアのみ) 新しいリソースがWeb エリアにロードされた
On Validate倍長整数3レコードのデータ入力が受け入れられた
On VP Range Changed倍長整数614D Vierw Pro のセルレンジが変更された(例: フォーミュラの計算、値がセルから削除された、など)
On Window Opening Denied倍長整数53(Webエリアのみ) ポップアップウィンドウがブロックされた

このリストでは On Load イベントが含まれていないことに注意して下さい。コマンドを実行した際には既にイベントが発生されてしまっているため、ここでは定義されていません。

arrEvents 引数にはカスタムイベントに対応する値を渡すこともできます。この際には、負の値を使用することが推奨されます。( CALL SUBFORM CONTAINER コマンドのドキュメントを参照して下さい。)

mode 引数には、配列の要素に対する全体的な処理の適用方法を決める値を渡します。 "Form Objects (Properties)" テーマ内にある、以下の定数のどれかを渡して指定して下さい。

定数コメント
Disable events others unchanged倍長整数2arrEvents に指定された全てのイベントは無効化され、他は何も変更されません。
Enable events disable others倍長整数0arrEvents に指定された全てのイベントは有効になり、他は全て無効化されます。
Enable events others unchanged倍長整数1arrEvents に指定された全てのイベントは有効になり、他は何も変更されません。

OBJECT SET EVENTS コマンドを使用する際、object 引数で指定したオブジェクトでサポートされていない型のイベントの設定をしようとした場合、このイベントは無視されます。

オブジェクトが OBJECT SET EVENTS コマンドを呼び出した後に複製された場合は、有効/無効の設定も複製先に引き継がれます。

例題 1

いくつかのリストボックスオブジェクトに対して3つのフォームイベントを有効にし、他を全て無効にする場合:

 ARRAY LONGINT($MyEventsOnLB;3)
 $MyEventsOnLB {1}:=On After Sort
 $MyEventsOnLB {2}:=On Column Moved
 $MyEventsOnLB {3}:=On Column Resize
 OBJECT SET EVENTS(*;"MyLB@";$MyEventsOnLB;Enable events disable others)
  // 指定した3つのイベントを有効にし、他は全て無効

例題 2

いくつかのリストボックスオブジェクトに対して3つのフォームイベントを無効にし、他は何も変更をしない場合:

 ARRAY LONGINT($MyEventsOnLB;3)
 $MyEventsOnLB {1}:=On After Sort
 $MyEventsOnLB {2}:=On Column Moved
 $MyEventsOnLB {3}:=On Column Resize
 OBJECT SET EVENTS(*;"MyLB@";$MyEventsOnLB;Disable events others unchanged)
  // 指定した3つのイベントのみ無効

例題 3

あるオブジェクトのフォームイベントを有効にし、他は何も変更をしない場合:

 ARRAY LONGINT($MyEventsOnLB;1)
 $MyEventsOnLB {1}:=On Column Moved
 OBJECT SET EVENTS(*;"Col1";$MyEventsOnLB;Enable events others unchanged)
  // 指定したイベントのみ有効

例題 4

フォームのイベントを全て無効にする場合:

 ARRAY LONGINT($MyFormEvents;0)
 OBJECT SET EVENTS(*;"";$MyFormEvents;Enable events disable others)
  // 全てのイベントが無効

例題 5

フォームのイベントを一つだけ無効にし、他は何も変更しない場合:

 ARRAY LONGINT($MyFormEvents;1)
 $MyFormEvents{1}:=On Timer
 OBJECT SET EVENTS(*;"";$MyFormEvents;Disable events others unchanged)
  // 指定した一つのイベントのみ無効

参照

Form Events
OBJECT GET EVENTS