は、フォルダごとにDirExists
を呼び出すよりも良い方法はありません。
if DirExists('C:\path1') or
DirExists('C:\path2') or
DirExists('C:\path3') then
begin
{ ... }
end;
ものの、ファイル/フォルダのセットを処理するとき、それは彼らのリストには、いくつかに保存されていることをお勧めしますコンテナ(TStringList
またはarray of string
など)を使用して、(繰返し)バルク処理を可能にします。あなたはすでにmy solution to your other questionからその(Dirs: TStringList
)を持っています。
var
Dirs: TStringList;
begin
Dirs := TStringList.Create();
Dirs.Add('C:\path1');
Dirs.Add('C:\path2');
Dirs.Add('C:\path2');
end;
function AnyDirExists(Dirs: TStringList): Boolean;
var
I: Integer;
begin
for I := 0 to Dirs.Count - 1 do
begin
if DirExists(Dirs[I]) then
begin
Result := True;
Exit;
end;
end;
Result := False;
end;
しかし、私はあなたがチェックボックスへのすべてのパスをマップすること、your other questionから知っています。したがって、チェックボックスがある場合は、チェックボックスをオンにするだけです。
if CheckListBox.Items.Count > 0 then
begin
UninstallProgressForm.InnerNotebook.ActivePage := UninstallConfigssPage;
{ ... }
if UninstallProgressForm.ShowModal = mrCancel then Abort;
{ ... }
UninstallProgressForm.InnerNotebook.ActivePage := UninstallProgressForm.InstallingPage;
end;