PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
6588 99/06/03 09:15:31 RE(5):PB6: 関数へのポインタって、使えますか? By EiX
6582 99/06/02 18:57:36 RE(4):PB6: 関数へのポインタって、使えますか? By Taka
6578 99/06/02 18:15:22 RE(3):PB6: 関数へのポインタって、使えますか? By てとらぽっと
6576 99/06/02 17:40:45 RE(2):PB6: 関数へのポインタって、使えますか? By EiX
6565 99/06/02 15:49:16 RE(1):PB6: 関数へのポインタって、使えますか? By こてちゅ
6555 99/06/02 10:33:26 PB6: 関数へのポインタって、使えますか? By EiX

カテゴリ:スクリプトの記述
日付:1999年06月02日 18:57 発信者:Taka
題名:RE(4):PB6: 関数へのポインタって、使えますか?

EiXさん、こんばんは。

>クラスを作成しクラスのプロパティに関数のポインタをセットして
>やって、クラス内部でポインタから実行する、みたいなことをした
>いのです。

これって、コールバック関数を呼び出すようなものを作りたい、ということですね。
てとらぽっとさんのコメントにあるように、PowerBuilderの世界の中だけでは
無理です。

このような設計をしたい場合、PowerBuilderではイベント呼び出しを記述しておくのが
一般的と思われます。

DWの祖先クラスを例にすると、行を削除する為のユーザー関数 uf_DeleteRow
があるとします。この関数では、次のような処理にしておきます。

-----------------------------------------------------
宣言: uf_DeleteRow( long row ) return integer
-----------------------------------------------------
// チェック
if This.Event ue_RowDeleting( row ) = 1 then return -1
// 削除
if This.DeleteRow( row ) = -1 then return -1
// 削除の通知
This.Event ue_RowDeleted( row )
return 1

上記で、ue_RowDeleting, ue_RowDeleted は、独自に定義したユーザーイベント
ですが、受け口だけ作成しておいて、実際の処理は各継承先で記述します。

やりたいことがカバーできるかどうか解りませんが、これが一番近いと思います。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

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

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