PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
11709 | 00/06/12 14:07:45 | RE(5):PB6.5: カスタムユーザオブジェクトを貼り付けたウィンドウの継承について By てとらぽっと |
11708 | 00/06/12 13:58:20 | RE(4):PB6.5: カスタムユーザオブジェクトを貼り付けたウィンドウの継承について By MIYAHARA |
11707 | 00/06/12 13:38:28 | RE(3):PB6.5: カスタムユーザオブジェクトを貼り付けたウィンドウの継承について By MIYAHARA |
11706 | 00/06/12 13:30:38 | RE(2):PB6.5: カスタムユーザオブジェクトを貼り付けたウィンドウの継承について By Taka |
11703 | 00/06/12 13:18:35 | RE(1):PB6.5: カスタムユーザオブジェクトを貼り付けたウィンドウの継承について By てとらぽっと |
11702 | 00/06/12 12:58:59 | PB6.5: カスタムユーザオブジェクトを貼り付けたウィンドウの継承について By MIYAHARA |
カテゴリ:PowerBuilderの開発環境
日付:2000年06月12日 13:30 発信者:Taka
題名:RE(2):PB6.5: カスタムユーザオブジェクトを貼り付けたウィンドウの継承について
MIYAHARAさん、こんにちは。
この手の事象は、オブジェクト化ではよくある話ですね。
さまざまな実装方法が考えられると思いますが、今回のような場合でしたら、
uo_custom.cb_1のClickedイベントで、直接ウィンドウ関数を呼び出すことは
しないほうが良いと思います。
理由は、uo_custom が必ず w_parent(またはその子孫)だけで使われるとは
限らないからです。
以下は、私がよくやっている方法です。ご参考にどうぞ。
(1) uo_custom.cb_1のClickedイベントでは、その親である uo_customのユーザイベント
(仮に ue_ok とする)を呼び出すだけにしておく。
(2) uo_customを配置したウィンドウにおいて、そのコントロールの ue_ok イベントで
parent.wf_function() を呼び出す。
または、uo_custom が必ず w_parent(またはその子孫)で使われる事が保証できている
のであれば、こんな方法もあります。
(1) uo_customのインスタンス変数で、w_parent型の変数 i_ParentWindow を用意しておく。
(2) cb_1のClickedでは、i_ParentWindow.wf_function() と書いておく。
(3) uo_customを配置したウィンドウ内で、uo_x.i_ParentWindow = This などして、
ウィンドウへの参照を代入して関連付ける。これを忘れるとNullオブジェクト参照になります)
この方法は一見スッキリしているように見えますが、ロジックの透過性が低く後で改良
(とくに他の人が)する際にネックになる事がよくあります。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS Sybase SQL Anywhere Client
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.