每当我打电话给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
,并且没有显示窗口。
答案 0 :(得分:0)
下面的代码对我来说很好用,并在西雅图Delphi中编译为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;
答案 1 :(得分:0)
我制作了自己的版本,而不是不起作用的正式版本。