|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
bios (阿贡) |
★☆☆☆☆ |
-
|
盒子中级会员 |
|
2003/7/10 8:05:18 |
标题: |
没人能搞定它吗?shbrowseforfolder函数? |
浏览:2603 |
|
加入我的收藏 |
楼主: |
没人能搞定它吗?shbrowseforfolder函数?
uses shlobj;
function SelectDirectory(handle:hwnd;const Caption: string; const Root: WideString;out Directory: string): Boolean; var lpbi:_browseinfo; buf:array [0..MAX_PATH] of char; id:ishellfolder; eaten,att:cardinal; rt:pitemidlist; initdir:pwidechar; begin result:=false; lpbi.hwndOwner:=handle; lpbi.lpfn:=nil; lpbi.lpszTitle:=pchar(caption); lpbi.ulFlags:=BIF_RETURNONLYFSDIRS+64; SHGetDesktopFolder(id); initdir:=pwchar(root); id.ParseDisplayName(0,nil,initdir,eaten,rt,att); lpbi.pidlRoot:=rt; getmem(lpbi.pszDisplayName,MAX_PATH); try result:=shgetpathfromidlist(shbrowseforfolder(lpbi),buf); except freemem(lpbi.pszDisplayName); end; if result then directory:=buf; end;
这段是不错,但不完美:毛病在于lpbi.pidlRoot:=rt; 运行后显示 效果是目录浏览框中只有
这个当前目录,如图http://www.bwkj.net/ddiscussion/current.jpg
而我想要的是如BORLAND的效果如图:他既能显示完整路径
又能记住上一次的路径!
http://www.bwkj.net/ddiscussion/whole.jpg
请问该如何修改这段代码才能有BORLAND的效果
----------------------------------------------
|
作者: |
|
2003/7/10 8:44:26 |
1楼: |
用ShellTreeView控件不行吗?
----------------------------------------------
-
|
作者: |
bios (阿贡) |
★☆☆☆☆ |
-
|
盒子中级会员 |
|
2003/7/12 23:01:33 |
2楼: |
不行的ShellTreeView.path没反应 不信你可以试试!
----------------------------------------------
|
|