FAQ
技術的な質問>
実現したい処理
Q77-1:フレームやダイアログの右上の×(閉じる)ボタンは無効化することはできないでしょうか?テキストフィールドなどのフォーカス消失イベントなどとの、イベント発生順がうまく制御できないため困っております。よろしくお願いします。
A77-1:
現在のところ、[フレーム]右上の閉じるボタンを無効化することはできませんが、処理によって回避できることもあるかと存じますので、差支えなければ[テキストフィールド]を使用した際の問題について、詳細をお教え頂ければ幸いです。
Q77-2:
フレームを閉じる→アプリケーション終了→データベースの切断の流れにしています。しかし、その後にテキストフィールドのフォーカス消失イベントが発生してしまい、データベースが切断されているためデータベースの処理をほどこしているとエラーが発生してしまいます。解決方法があればよろしくお願いします。
A77-2:
フレームを閉じるためにフレーム右上×印を押すと[テキストフィールド]からはフォーカスが失われます。
一度アプリケーションローダーでお試し頂きたいのですが、ローダーの場合は、恐らくエラーが起こらないのではないかと思います。 これは「アプリケーションを終了する()」としてもアプリケーションビルダーの場合には編集環境まで終了する訳にはいきませんので、お知らせ頂いたような現象になる場合があります。
データベース切断時にはフォーカスロストイベントに繋がっている処理を行わないようにするには、[イベント伝播制御]を使用し、接続/切断時にboolean値を変更する等が考えられます。 関連ファイルをご覧下さい。
ただ、フォーカスロストは特にフレームを閉じに行く場合だけでなく、例え「閉じる」ボタンを設けても、「切断」ボタンを設けても、マウス操作でそのボタンを押すことが可能な限り発生するので、その場合にはまた別な処理を考える必要があります。
関連ファイル:
フォーカス伝播.mzax
(※このファイルは、ZIP形式に圧縮してあります。)
備考:
「フレーム」の「Q&A6」
にも掲載。