PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
6608 99/06/04 20:08:43 RE(3):ゴミ By Taka
6607 99/06/04 20:06:08 RE(2):PB5.0.02: ウィンドウの継承について By Taka
6606 99/06/04 19:50:06 RE(1):PB5.0.02: ウィンドウの継承について By Mika★
6604 99/06/04 19:16:08 PB5.0.02: ウィンドウの継承について By MR.TANI

カテゴリ:継承関係
日付:1999年06月04日 20:06 発信者:Taka
題名:RE(2):PB5.0.02: ウィンドウの継承について

MR.TANIさん、こんばんは。

>ウィンドウの継承についてなんですけども、先祖ウィンドウでRETRUNで抜ける処理を
>書いているのに、そのスクリプトから抜けずに子孫ウィンドウのスクリプトが走ってしまい
>エラーでおちてしまいます

祖先スクリプトでRETURNしても、子孫側のスクリプトが実行されてしまうのは、PB5の仕様です。
落ちるかどうかは、スクリプトに依存すると思います。

>回避方法を教えてください

この現象を回避するには、子孫側のスクリプトペインタで「祖先スクリプトの上書き」モードに
しておきます。これで、暗黙的な祖先呼び出しが抑制できます。
次に、子孫側のスクリプトでは以下のように記述します。
integer rtn
rtn = super event::ue_xxx( arguments )
if rtn = 1 then
  return 1
end if
< 子孫側でやりたい処理 >

このテクニックは、オンラインブックやFaxLineなどにも載っています。

ちなみにPB6.xでは、祖先の戻り値を拾うための特殊な変数 AncestorReturnValue が用意されているので、
上記のように「祖先上書き&明示呼出し」をしなくても結果を判定することができます。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS Oracle SQL*Net 2.3
Browser (記載なし)

Server SoftWare

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

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