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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.