Applet 終了中にはサブアプレットを表示できない? - Printable Version +- Curl Global Community (https://communities.curl.com) +-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1) +--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2) +--- Thread: Applet 終了中にはサブアプレットを表示できない? (/showthread.php?tid=945) |
Applet 終了中にはサブアプレットを表示できない? - umemura - 07-25-2013 register-exit-proc を利用して、アプリケーション終了時にスプラッシュスクリーンを表示しようと思ったのですが、 「Applet creation disallowed while exiting」というメッセージが表示されます。 おそらく、アプリケーション終了時にはスプラッシュスクリーンを表示することはできない、ということでしょうか。 Code: {import * from CURL.ENGINE.BROWSER} 上記の問題に関連して、 アプリケーションが終了しようとしているかどうか、というのは、どのように判断すればよいでしょうか。 AppletData のプロパティにそれっぽいものがありますが、 get-the-applet で取得できるのはApplet なので、AppletData は取得できないという認識です。 「現在のアプレットの動作状態」を取得する方法があれば教えてください。 RE: Applet 終了中にはサブアプレットを表示できない? - dyoshida - 07-28-2013 register-exit-proc はCurl IDE ドキュメントをみると 「一般的には、ダイアログ ボックスの作成およびイベントの処理は、exit-procs では避けるようにしてください。」 と書かれているので、この時点では終了処理が進みすぎてスプラッシュウィンドウを表示するには手遅れなのでは。 アプリケーションが終了しようとしていることを知る方法ですが、WindowClose イベントハンドラを実装しては どうでしょうか? 他のウィンドウシステムでも、アプリケーションが終了のリクエストを察知して、終了処理に入る前になにか処理を 行ったり終了をキャンセルするのにウィンドウのcloseイベントを利用していたと思うので、Curlでも同じように 実現できるのでは。 試しに独立型アプレットで終了確認と、終了前にスプラッシュスクリーンを表示するコードを書いてみました。 Code: {curl 8.0 applet} RE: Applet 終了中にはサブアプレットを表示できない? - umemura - 07-29-2013 ヘルプをよく確認していませんでした。 すいません。 やはり、exit-procs ではスプラッシュスクリーンは無理そうなのですね。 私のアプレットでは、いろいろなところからexit プロシージャでアプリケーションを終了しているのですが、 exit プロシージャを直接呼ぶのではなく、「終了処理」というプロシージャを作成し、 その中でのみ exit プロシージャを呼ぶようにするべきでした。 そうすれば、dyoshida さんのアドバイスに従って、View のクローズ時などから呼び出せますね。 ありがとうございました。 |