SelectDirectory () не работает.Всегда возвращает false - PullRequest
0 голосов
/ 03 июля 2019

Всякий раз, когда я звоню Res := SelectDirectory('Test', '', Dir), Res всегда ложно.Я ожидаю, что на телефоне откроется окно, в котором я могу выбрать папку.Второй параметр, являющийся пустым, должен означать, что все папки показаны.

Я пробовал несколько папок, которые, как мне известно, существуют, например, папку «Программы», 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 и нетокно показано.

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

Я сделал собственную версию вместо официальной, которая не работает.

0 голосов
/ 03 июля 2019

Приведенный ниже код отлично работает для меня, скомпилированный в проект FMX в Delphi Seattle.

Попробуйте пошагово выполнить его в отладчике и посмотрите, как он работает.Что происходит при выполнении строки 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;
...