我真的想知道各种方法,我可以选择一个目录与TOpenDialog,无论是下载一个新的组件或使用Delphi提供的,但最好使用Delphi提供的东西。
在此之前,我一直在使用SelectDirectory命令,但我认为这将是一个困难,我的程序的用户查找指定的目录。
我认为SelectDirectory是’弱’,因为它可以是一个长过程,当搜索你想要的目录。例如,您想导航到应用程序数据目录。在那里导航多久或困难?最终,用户甚至可能无法到达他们想要的目录。
我需要这样的地方,用户可以复制和粘贴目录到顶部的目录地址栏。
谢谢你的所有答案。
解决方法
您可以使用
TFileOpenDialog
(在Vista上):
with TFileOpenDialog.Create(nil) do try Options := [fdoPickFolders]; if Execute then ShowMessage(FileName); finally Free; end;
就个人而言,我总是在Vista上使用TFileOpenDialog,并在XP上使用SelectDirectory(好的!),如下所示:
if Win32MajorVersion >= 6 then with TFileOpenDialog.Create(nil) do try Title := 'Select Directory'; Options := [fdoPickFolders,fdoPathMustExist,fdoForceFileSystem]; // YMMV OkButtonLabel := 'Select'; DefaultFolder := FDir; FileName := FDir; if Execute then ShowMessage(FileName); finally Free; end else if SelectDirectory('Select Directory',ExtractFileDrive(FDir),FDir,[sdNewUI,sdNewFolder]) then ShowMessage(FDir)