PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
9756 00/01/04 20:20:42 RE(3):PB6.5: dirlistをユーザオブジェクトで行うとエラーになる By Taka
9736 00/01/04 09:48:11 RE(2):PB6.5: dirlistをユーザオブジェクトで行うとエラーになる By mimi2
9721 99/12/28 15:25:11 RE(1):PB6.5: dirlistをユーザオブジェクトで行うとエラーになる By Taka
9720 99/12/28 13:49:09 PB6.5: dirlistをユーザオブジェクトで行うとエラーになる By mimi2

カテゴリ:スクリプトの記述
日付:1999年12月28日 15:25 発信者:Taka
題名:RE(1):PB6.5: dirlistをユーザオブジェクトで行うとエラーになる

mimi2さん、こんにちは。

DirList関数は、前提として親ウィンドウが必要になります。
というのは、この関数が内部的に使用している(と思われる)API、DlgDirList では、
親ウィンドウのハンドルおよびリストボックスの識別子(ハンドルではない)を渡す
仕様になっているからです。(昔、同じことをしてました)

例えば、
 ListBox  lb_x
 lb_x = CREATE ListBox
 lb_x.DirList( ... )
これでやると、lb_xが示すインスタンスは親ウィンドウを持っていないのでエラーに
なります。(ListBox型を継承したユーザオブジェクトでも同様)

この処理は、ウィンドウに配置することではじめて実行可能になります。
静的に配置してもいいですが、OpenUserObject関数を使って動的にウィンドウ内に
コントロールを配置したらどうなりますか?ちょっと実験してみてください。


または、Win32APIの FindFirstFile, FindNextFile, FindClose関数を使いこなすことで、
ファイル一覧を取得できます。この方法ならListBoxのコントロールは不要です。
Win32APIについては専門書籍などをご覧ください。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows NT 4.0
DBMS Oracle SQL*Net 8
Browser (記載なし)

Server SoftWare

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

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