経緯・目的
- トリガーとして OnObjectExit イベントを設定していたとしても、ボタンを押した時はフォーカスアウト扱いとならず、設定していたスクリプトが実行されない。
- したがって、ボタンを押した時に入力フォームから強制的にフォーカスアウトする方法が必要
ポイント
検索モードに切り替え []
でフォーカスをが外れる。ブラウズモードに切り替え []
でフォーカスを外すために検索モードに変更されていた画面が元のレイアウトに戻る。- これらのスクリプトを実行してはいけない場合の検証は行っていない。もともと検索モードの場合に実行するとどうなるか、不明
- 画面から呼ばれるスクリプトの先頭でこれらを実行するのがベターと考える。
スクリプトのコード
################################################## # アクティブフィールドからフォーカスを強制的に外します。 # 引数: なし # 戻り値: なし ################################################## 検索モードに切り替え [] ブラウズモードに切り替え []
強制フォーカスアウトの設定方法
- ボタン設定 > 処理、のスクリプトを開く
- スクリプトの先頭に、
スクリプト実行 [「強制フォーカスアウト」]
を追加する。
おわりに
たった 2 行のコードですけれども、独立したスクリプトといたしました。
切り出さないで行っている処理を並べただけですと、なぜこれら 2 行のコードを入れたのか、意図が伝わりませんもの!
ちなみに、今回の問題は オブジェクトへ移動 [オブジェクト名: "xxxxx"]
でも目的は達成できそうでしたの。
ですけれどもこの場合、スクリプトの中でオブジェクトを指定する必要があり、ということはオブジェクトの数だけスクリプトステップが増えてしまいます。とてもメンテナンスできませんの!
また、移動先のオブジェクトも別途作る必要があるとのことでした。これまた面倒ですの><
ですのでこの方法は却下いたしました。
以上です。