请问怎样在自己程序中调用Win的"请选择文件夹"对话框(这已经是我的最高分了89) SelectDirectory ,see delphi help 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function SelectDirectory(const Caption: WideString; const Root: string; var Directory: string): Boolean;Unit:QDialogs uses QDialogs;procedure TForm1.Button1Click(Sender: TObject);const a='选择';b='d:\' ;var c:string;beginif SelectDirectory(a,b,c) then close;end; uses shlobj ;function MyBrowse(const winhandle : THANDLE; const title : string) : string;var BrowseInfo: TBrowseInfo; IDRoot: PItemIDList; Path: array[0..MAX_PATH] of Char;begin SHGetSpecialFolderLocation(winHandle, CSIDL_DRIVES, IDRoot); //CSIDL_NETWORK 浏览计算机 //CSIDL_PRINTERS 浏览打印机 //其它可查MSDN ZeroMemory(@BrowseInfo, SizeOf(TBrowseInfo)); ZeroMemory(@path, MAX_PATH); BrowseInfo.hwndOwner := winhandle; BrowseInfo.pidlRoot := IDRoot; BrowseInfo.lpszTitle := PChar(title); BrowseInfo.pszDisplayName := @path; BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS ; //BrowseInfo.ulFlags := BIF_BROWSEFORCOMPUTER; SHBrowseForFolder(BrowseInfo);end; uses FileCtrl;procedure TForm1.Button1Click(Sender: TObject);var dir:String;begin SelectDirectory('请选择文件夹','',dir);end; 两种选择目录对话框{uses ShlObj,FileCtrl}var BrowseInfo: TBrowseInfo; pIDLst: PItemIDList; Dir: array[0..MAX_PATH-1] of char;begin FillChar(Dir, SizeOf(Dir), 0); with BrowseInfo do begin hwndOwner := Handle; pidlRoot := nil; pszDisplayName := nil; lpszTitle := '请选择目录'; ulFlags := 0; lpfn := nil; lParam := 0; iImage := 0; end; pIDLst := SHBrowseForFolder(BrowseInfo); SHGetPathFromIDList(pIDLst, @Dir); ShowMessage(Dir);end;procedure TForm1.Button2Click(Sender: TObject);var Dir:string;begin if selectdirectory('请选择目录','/',dir)=False then exit; ShowMessage(Dir);end; 急死啦!为什么总是需要先登录一次服务器后才能连接到SQL Server? 各位兄弟姐妹们,如何知道一个程序内存的使用情况? 急急……………………………………………………20 向各位同行请教 在ie中躺着显示一个动画 看似简单的ADO问题,但很多人都不知道,急切盼望解决!!!!(20分) 如何将多种文件集成在一个流中,并读出 关于考勤系统业务需求 请问为什么运行动画时如果timer设置较小时出现屏幕闪烁情况? 搞了一天也没解决,上来请教 今天有没有在线的兄弟呀?报名活动! 做一个大应用系统时需设计许多窗口, 怎样将窗体与应用系统分开....
QDialogs
procedure TForm1.Button1Click(Sender: TObject);
const a='选择';b='d:\' ;
var c:string;
begin
if SelectDirectory(a,b,c) then close;
end;
var
BrowseInfo: TBrowseInfo;
IDRoot: PItemIDList;
Path: array[0..MAX_PATH] of Char;
begin
SHGetSpecialFolderLocation(winHandle, CSIDL_DRIVES, IDRoot);
//CSIDL_NETWORK 浏览计算机
//CSIDL_PRINTERS 浏览打印机
//其它可查MSDN
ZeroMemory(@BrowseInfo, SizeOf(TBrowseInfo));
ZeroMemory(@path, MAX_PATH);
BrowseInfo.hwndOwner := winhandle;
BrowseInfo.pidlRoot := IDRoot;
BrowseInfo.lpszTitle := PChar(title);
BrowseInfo.pszDisplayName := @path;
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS ;
//BrowseInfo.ulFlags := BIF_BROWSEFORCOMPUTER;
SHBrowseForFolder(BrowseInfo);
end;
var
dir:String;
begin
SelectDirectory('请选择文件夹','',dir);
end;
var
BrowseInfo: TBrowseInfo;
pIDLst: PItemIDList;
Dir: array[0..MAX_PATH-1] of char;
begin
FillChar(Dir, SizeOf(Dir), 0);
with BrowseInfo do
begin
hwndOwner := Handle;
pidlRoot := nil;
pszDisplayName := nil;
lpszTitle := '请选择目录';
ulFlags := 0;
lpfn := nil;
lParam := 0;
iImage := 0;
end;
pIDLst := SHBrowseForFolder(BrowseInfo);
SHGetPathFromIDList(pIDLst, @Dir);
ShowMessage(Dir);
end;procedure TForm1.Button2Click(Sender: TObject);
var
Dir:string;
begin
if selectdirectory('请选择目录','/',dir)=False then exit;
ShowMessage(Dir);
end;