就像千千静听的"添加目录"的目录选择框那样.
解决方案 »
- 怎么创建一个tiff的文件?
- 北京招5年以上delphi开发人员
- 怎样来设置时间字段啊.有经验人士来看一下啊???????
- [Fatal Error] fDemo.pas(33): File not found: 'uDll.dcu',为什么?(简单:20分)
- 急!!请各位看看这条‘查找’程序什么地方有错??
- 应用程序服务器连接数量限制!!!!!!!!!!!
- 关于文件查找的一个小问题!
- 急急急!isapi程序在本机上可以运行,在服务器上不能运行,请问安装是否需要一些delphi的dll?
- 大家如何控制打印机呢?有没有"全攻略"那种东西?
- 历史遗留问题 DBGrid中输入法的问题,求助!!!
- 用Listview实现缩略图为什么总有问题(附程序源码)
- Ehlib高手请进
初始目录:opendialog1.InitialDir:=extractfilepath(application.ExeName)+'TTPlayer\';
procedure TForm1.Button1Click(Sender: TObject);
var Path:string;
begin
if SelectDirectory('You Must Select a Directory for me,hehe','',Path) then
ShowMessage('You Select Directory is:'+Path);
end;
我想用DFS 的 TSystemTreeView 但网上已绝迹,不知哪里有!哪位提供个地址?
代码如下:(以下两个函数定义需要在uses中引入两个单元ShlObj,Windows;)function BrowseCallbackProc(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer stdcall;
begin
case uMsg of
BFFM_INITIALIZED: SendMessage(Wnd, BFFM_SETSELECTION, 1, lpData);
end;
Result := 0;
end;function BrowsFolder(const Folder: string): string;
var
TitleName: string;
lpItemID: PItemIDList;
BrowseInfo: TBrowseInfo;
DisplayName: array[0..MAX_PATH] of char;
TempPath: array[0..MAX_PATH] of char;
begin
Result := Folder;
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
BrowseInfo.hwndOwner := GetActiveWindow;
BrowseInfo.pszDisplayName := @DisplayName;
TitleName := '请选择一个目录';
BrowseInfo.lpszTitle := PChar(TitleName);
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
BrowseInfo.lpfn := BrowseCallbackProc;
BrowseInfo.lParam := Integer(PChar(Folder));
lpItemID := SHBrowseForFolder(BrowseInfo);
if Assigned(lpItemId) then
begin
SHGetPathFromIDList(lpItemID, TempPath);
GlobalFreePtr(lpItemID);
Result := string(TempPath);
end
else
Result:='';
end;函数BrowsFolder是主体,传入参数即默认的目录,返回值即选择的结果。 BrowseCallbackProc是由SHBrowseForFolder执行时需要的回调(Call Back)函数。在这个函数中,截取了BFFM_INITIALIZED消息,在目录选择对话框初始化的时候,向对话框发送一个BFFM_SETSELECTION消息,选中默认的目录。