先祖の処理の前に子孫の処理を実行する
2022/10/28
方法
継承したオブジェクトのイベントで子孫の処理を実行した後で先祖の処理を実行するには、「先祖スクリプトの拡張」を無効にしたうえで子孫の処理の最後に先祖の処理を呼び出します。
オブジェクトを継承して子孫のイベントに処理を記述した場合、実行時は先祖オブジェクト、子孫オブジェクトの順に処理が実行されます。
この動作を回避して子孫の処理を先に実行するには、子孫イベントの「先祖スクリプトの拡張」を無効にして先祖の処理が自動で実行されないように設定したうえで、子孫イベントの処理の最後に先祖のスクリプトを呼び出します。
「先祖スクリプトの拡張」はスクリプトのメニュー [編集 | 先祖スクリプトの拡張]、またはスクリプトエディタの右クリックメニュー [先祖スクリプトの拡張] から有効/無効の切り替えができます。「先祖スクリプトの拡張」を無効に設定 (チェックが外れた状態) にすることで先祖の処理が実行されない動作となるので、そのうえで子孫の処理の最後に先祖の処理を呼び出します。先祖の処理は CALL SUPER::イベント名 で呼び出すことができます。
【例】
[ItemChanged イベント (子孫)] (※[先祖スクリプトの拡張] は無効)
// 子孫の処理 ・・・ // 先祖の処理を呼び出す CALL SUPER::ItemChanged
Tips情報
プロダクト :PowerBuilder
バージョン :2019R3