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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.