PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
14177 00/12/23 02:30:14 RE(5):PB7.0: OPENスクリプトにMessageboxを表示すると画面操作不能になる By ryochan
14176 00/12/22 22:51:58 RE(4):PB7.0: OPENスクリプトにMessageboxを表示すると画面操作不能になる By M.M
14170 00/12/22 14:11:54 RE(3):PB7.0: OPENスクリプトにMessageboxを表示すると画面操作不能になる By ryochan
14168 00/12/22 12:14:01 RE(2):PB7.0: OPENスクリプトにMessageboxを表示すると画面操作不能になる By Taka
14158 00/12/20 16:21:02 RE(1):PB7.0: OPENスクリプトにMessageboxを表示すると画面操作不能になる By M.M
14154 00/12/20 15:08:31 PB7.0: OPENスクリプトにMessageboxを表示すると画面操作不能になる By ponta20

カテゴリ:スクリプトの記述
日付:2000年12月20日 16:21 発信者:M.M
題名:RE(1):PB7.0: OPENスクリプトにMessageboxを表示すると画面操作不能になる

ponta20さん、こんにちは。

>レスポンスウィンドウのOPENスクリプトには、
>ペアレントから渡されたパラメータがNULLの場合はメッセージを
>表示し、処理を抜けるというスクリプトを記述しています。
>↓
>if isNull(パラメーター) = true then
> Messagebox(\"title\", \"message\")
> Return
>End If

>しかし、実際にはメッセージボックスが表示されたあと、
>メッセージボックスの「OK」ボタンを押すと、
>メッセージボックスは消えるのですが、画面がかたまって
>しまいます。マウスは動くのですが、キー入力もマウスクリック
>も利きません。画面が閉じられなくなるのです。
>...
>OPENスクリプトにMessagebox関数は不適合なんでしょうか?

結論から言いますと、OpenイベントでMessageBox関数は使わない方がいいです。

Openイベントはウィンドウが開く前に実行されます。
そこでMessageBox関数を実行し[OK]を押して元のウィンドウに戻ろうとした時
に、戻り先のウィンドウがまだ生成されていないためフォーカスがどこに戻って
よいかわからなくなり、固まってしまうと推測されます。

ではどうしたら良いかといいますと、ユーザイベントを作成し、そこにMessage
Box関数を記述します。Openイベントで条件に引っかかった際に、MessageBox
関数を実行するのではなく、PostEvent関数で先ほど作成したユーザイベント
を実行するようにします。(重要)

そうすれば、Openイベントの処理終了後にウィンドウが生成され、さらにウィン
ドウのActivateイベント実行後にPostしたユーザイベントが実行されますので、
MessageBox関数を実行しても、フォーカスが迷子になることはなくなります。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows98
DBMS Oracle SQL*Net 8
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.