uses filectrl;selectdirector
解决方案 »
- 今日面试题目:adoquery 访问储存过程,返回N个数据集,但是只取第三个!
- PBGun,fang098请进来接分,谢谢了
- delphi 中怎么才能实现模拟点击网页中的链接呢?
- 重分寻找一个API
- InfoPower for BCB 的哪个版本解决了中文的Bug ?我现在用 infopower 3000 的 wwDBRichEdit 输入中文依然出错,有没有解决办法?
- 为什么我Delphi6上所用Toolbar的Hint,和设计界面上的控件的Hint都不见了
- 将事件延迟一段时间执行?
- 在delphi中如何实现纵向显示text?
- [调查]在这里的网友有用正版delphi的吗?
- 100分,为什么我用dbexpress连数据库,字段都是只读的?
- dll 的问题,还有MSCOM控件...
- 谁有经过测试正确的显示机器硬盘容量信息的源程序,急用!
用opendialog控件,先选一个文件(此文件夹下的);
然后用extractfilepath(opendialog.filename)函数来获取这个文件夹;
MessageBox('Right! Check-out.', 'Information', MB_OK + MB_ICONINFORMATION);
selectdirector ---- instead ------> SelectDirectory
Site:
http://www.yaoba.com/~masterall/vcl/net/vcl_net.htm
if opendialog.Execute then
……
function SelectDir(ParentHWnd: HWnd; const Caption: string; const Root: WideString;
out Directory: string): Boolean;
var
BrowseInfo: TBrowseInfo;
Buffer: PChar;
RootItemIDList, ItemIDList: PItemIDList;
ShellMalloc: IMalloc;
IDesktopFolder: IShellFolder;
Eaten, Flags: LongWord;
begin
Result := False;
Directory := '';
FillChar(BrowseInfo, SizeOf(BrowseInfo), 0);
if (ShGetMalloc(ShellMalloc) = S_OK) and (ShellMalloc <> nil) then
begin
Buffer := ShellMalloc.Alloc(MAX_PATH);
try
SHGetDesktopFolder(IDesktopFolder);
IDesktopFolder.ParseDisplayName(Application.Handle, nil,
POleStr(Root), Eaten, RootItemIDList, Flags);
with BrowseInfo do
begin
hwndOwner := ParentHWnd;
pidlRoot := RootItemIDList;
pszDisplayName := Buffer;
lpszTitle := PChar(Caption);
ulFlags := BIF_RETURNONLYFSDIRS;
end;
ItemIDList := ShBrowseForFolder(BrowseInfo);
Result := ItemIDList <> nil;
if Result then
begin
ShGetPathFromIDList(ItemIDList, Buffer);
ShellMalloc.Free(ItemIDList);
Directory := Buffer;
end;
finally
ShellMalloc.Free(Buffer);
end;
end;
end;