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 (記載なし)

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