delphi - SelectDirectory() 不起作用。它总是返回 false
问题描述
每当我打电话Res := SelectDirectory('Test', '', Dir)
时,Res
总是假的。我希望在手机上打开一个窗口,我可以在其中选择一个文件夹。第二个参数为空应该意味着显示所有文件夹。
我尝试了一些我知道存在的文件夹,例如 Programs 文件夹、SharedCamera 等。没有区别,它仍然无法正常工作。
Root:= '';
Res:= SelectDirectory('Test', Root, Dir); // Always returns false.
{I tried Root:= System.IOUtils.TPath.GetPicturesPath + System.IOUtils.TPath.DirectorySeparatorChar;
and Root:= System.IOUtils.TPath.GetPicturesPath + System.IOUtils.TPath.DirectorySeparatorChar + '*.*';
and several others.}
我总是得到Res = False
并且没有显示窗口。
解决方案
下面的代码对我来说很好,编译成 Delphi Seattle 的 FMX 项目。
尝试在调试器中单步执行它,看看它是否正常工作。Asset
行执行时会发生什么?
procedure TForm2.TestSelectDirectory;
var
BoolRes : Boolean;
Dir : String;
Path : String;
S : String;
begin
Path := 'C:\Temp';
Assert(DirectoryExists(Path));
BoolRes := SelectDirectory('Testing SelectDirectory', Path, Dir);
if BoolRes then
S := 'Succeeded '
else
S := 'Failed ';
S := Format(S + '%s', [Dir]);
Memo1.Lines.Add(S);
end;
推荐阅读
- php - 如何更改分页响应?
- google-chrome - 什么是更新 Chrome 扩展视图和资产的最佳方式和允许方式?
- html - 网页上的表单列表
- memory - 在dolphindb中查询占用内存
- oauth-2.0 - Oauth 2.0 与 Auth0 与 WSO2
- python - 如何使用 Python Selenium 将抓取表数据转换为字典
- jenkins - 如何在 Jenkins 脚本中获取构建的 jar 文件的路径?
- youtube-api - 使用 Youtube Data API 获取视频比特率阶梯
- vue.js - Vue过滤项目列表与数组
- spring - @WebMvcTest 因“无法加载 ApplicationContext”而失败,但文档指定它不需要 ApplicationContext