有用来选择目录的控件吗?(50分)

  • 主题发起人 主题发起人 ly_8
  • 开始时间 开始时间
L

ly_8

Unregistered / Unconfirmed
GUEST, unregistred user!
用OpenDialog必须选择一个文件,我需要用对话框的方式选择一个目录,用什么控件?
 
rxlib的TDirectoryEdit
大名鼎鼎的RX套件里的
 
AHM2000
去http://202.117.210.31/delphi/下载,先注册
 
用API调,金山毒霸就有,查杀病毒-->文件夹
 

在9x中不提供建立目录的功能,如果要的话,必须自己协回调函数,而显示一个Edit框则很简单。
就是把那个uFlags加上一个常量16就行了。
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+16;
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;

 
如果不用控件的话,可以用select directory函数,也不错
 
在2000里面,要调用那个有新建的浏览目录对话框,把那个flag常量+64就可以了。
 
用select directory函数
 
var
pach: string;
begin
SelectDirectory('请选择文件所在的文件夹','',path);
end;
 
多人接受答案了。
 
后退
顶部