- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在PB中如何选择目录?
在PB中如何选择目录?
1.
GetFileOpenName(title,pathname,filename{,extension{,filter}})
其中pathname包含全部路径+文件名,filename包含文件名,用pathname截掉filename部分即得到要选择的目录
PB8以上用GetFolder(),以下的就用API,以前的帖子中有封装好的对象。
首先定义一个名为browseinfo的structure
这个structure这样定义
unsignedlong howner
unsignedlong pidlroot
string pszdisplayname
string lpsztitle
unsignedlong ulflags
unsignedlong lpfn
unsignedlong lparm
string iimage
再定义两个external function
Function unsignedlong SHBrowseForFolderA( browseinfo lpbrowseinfo ) Library shell32
Function unsignedlong SHGetPathFromIDListA( unsignedlong pidl, ref string pszPath) Library shell32
然后这么写
ulong ll_mess
string ls_path
ls_path = space(255)
browseinfo lpbrowseinfo
lpbrowseinfo.howner = handle(parent)
lpbrowseinfo.pszDisplayName = space(255)
lpbrowseinfo.lpsztitle = 请选择目录:
lpbrowseinfo.pidlroot = 0
lpbrowseinfo.ulflags = 1
setnull(lpbrowseinfo.lpfn)
ll_mess = SHBrowseForFolderA( lpbrowseinfo )
SHGetPathFromIDListA(ll_mess,ls_path)
sle_1.text = ls_path
2.
声明API函数:
Function unsignedlong SHGetPathFromIDListA( unsignedlong pidl, ref string pszPath) Library shell32
Function unsignedlong SHBrowseForFolderA( browseinfo lpbrowseinfo ) Library shell32
Subroutine CoTaskMemFree(ulong idlist) Library ole32
建立函数:
string browseforfolder(window awi_parent,string(as_caption)
函数内容:
browseinfo lstr_bi
itemidlist lstr_idl
unsignedlong ll_pidl
unsignedlong ll_r
Integer li_pos
String ls_Path
unsignedlong ll_Null
SetNull( ll_Null )
unsignedLong BIF_RETURNONLYFSDIRS =1
lstr_bi.hOwner = Handle( awi_Parent )
lstr_bi.pidlRoot = 0
lstr_bi.lpszTitle = as_caption
lstr_bi.ulFlags = bif_ReturnOnlyFSDirs
lstr_bi.pszDisplayName = Space( 255 )
lstr_bi.lpfn = ll_Null
ll_pidl = SHBrowseForFolderA( lstr_bi )
ls_Path = Space( 255 )
ll_R = SHGetPathFromIDListA( ll_pidl, ls_Path )
CoTaskMemFree( ll_pidl )
RETURN ls_Path
其他地方引用的方法:
String ls_dir
ls_dir = BrowseForFolder( parent, 选择目录)//parent为按钮所在的窗口
//ls_dir为选择的目录。
文档评论(0)