如何显示浏览文件夹对话框
2004-12-01 11:54
288 查看
function GetFolder(aRoot: integer; aCaption :string): string;
var
pPrograms,pBrowse: PItemIDList;
hBrowseInfo: TBROWSEINFO;
hPChar: PChar;
begin
if (not SUCCEEDED(SHGetSpecialFolderLocation(Getactivewindow, aRoot, pPrograms))) then
EXIT;
hPChar := StrAlloc(max_path);
with hBrowseInfo do
begin
hwndOwner := Getactivewindow;
pidlRoot := pPrograms;
pszDisplayName := hPChar;
lpszTitle := pChar(aCaption);
ulFlags := BIF_RETURNONLYFSDIRS;
lpfn := nil;
lParam := 0;
end;
pBrowse := SHBrowseForFolder(hBrowseInfo);
if (pBrowse <> nil) then
if (SHGetPathFromIDList(pBrowse, hPChar)) then
Result:= hPChar;
StrDispose(hPChar);
end;
//调用该函数
var
strFolder: String;
begin
strFolder := GetFolder(CSIDL_DRIVES,'select folder');
ShowMessage(strFolder);
end;
var
pPrograms,pBrowse: PItemIDList;
hBrowseInfo: TBROWSEINFO;
hPChar: PChar;
begin
if (not SUCCEEDED(SHGetSpecialFolderLocation(Getactivewindow, aRoot, pPrograms))) then
EXIT;
hPChar := StrAlloc(max_path);
with hBrowseInfo do
begin
hwndOwner := Getactivewindow;
pidlRoot := pPrograms;
pszDisplayName := hPChar;
lpszTitle := pChar(aCaption);
ulFlags := BIF_RETURNONLYFSDIRS;
lpfn := nil;
lParam := 0;
end;
pBrowse := SHBrowseForFolder(hBrowseInfo);
if (pBrowse <> nil) then
if (SHGetPathFromIDList(pBrowse, hPChar)) then
Result:= hPChar;
StrDispose(hPChar);
end;
//调用该函数
var
strFolder: String;
begin
strFolder := GetFolder(CSIDL_DRIVES,'select folder');
ShowMessage(strFolder);
end;
相关文章推荐
- [ZT]设计“好看”的用户界面(作者:王咏刚 2003 年10 月)
- acm.jlu.edu.cn-2005-The Dir Command
- [ZT]天下文章(作者:王咏刚 2004 年5 月)
- NMAKE的命令行语法
- MAKEFILE简明指南(二)
- 一封绝对OK的情书
- T41,50米开外我就认出了你!
- SQL SERVER 日志传送,设置,监控,角色转移
- MAKEFILE简明指南(一)
- Windows XP Profession环境下apapche,php4的安装
- 老鼠爱大米
- Delphi基础:回调函数及其使用
- 使用MyGeneration创建模板:介绍(翻译)
- Dreamweaver自动生成的垃圾代码
- 如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量
- RFC导读
- 解决IIS5 HTTP500内部错误
- 政府软件采购中微软的“软”与“硬”--新浪北美
- 大虾们。这里来看下,帮帮小弟哈(高分求助)
- 关于Visual InterDev 6.0 调试ASP工程的个人方法。