Создание текста заметки для плагина Inno Download - PullRequest
1 голос
/ 19 июня 2020

Я просмотрел справочную документацию для IDP, и я не могу найти никаких функций для создания текста памятки для файлов для загрузки.

Раньше я использовал DwinsHs, и это вызывало у меня проблемы. Но я смог использовать:

function DwinsHs_MemoDownloadInfo(Space, NewLine: String): String;
var
    i: Integer;
begin
    Result := '';
    for i := 0 to GetArrayLength(DwinsHs_DownloadsList) - 1 do
    begin
        if DwinsHs_DownloadsList[i].Required then
        begin
                Result := Result + Space + ExtractFileName(DwinsHs_DownloadsList[i].Filename);
                if DwinsHs_DownloadsList[i].Downloaded then
                begin
                    Result := Result + Space + ExpandConstant('{cm:ReadyMemo_Downloaded}');
                end;
                Result := Result + NewLine;
        end;
    end;
    if Result <> '' then
    begin
        Result := ExpandConstant('{cm:ReadyMemo_Download}') + NewLine + Result;
    end;
end;

Итак, потенциально у нас будет до 4 элементов, которые будут загружены:

  • Настройка справочной документации
  • V C Redist x86
  • V C Redist x64
  • Dot Net Framework

Соответствующие файлы добавляются с использованием idpAddFile (хотя я не t укажите размеры файлов, чтобы была небольшая задержка). Я попросил его показать страницу загрузки после wpPreparing:

idpDownloadAfter(wpPreparing);

В идеале, на странице памятки я бы хотел, чтобы он перечислял файлы, которые, как мы определили, пользователь хочет загрузить.

1 Ответ

1 голос
/ 19 июня 2020

Вы знаете, какие файлы вы загружаете, поэтому собирайте их имена во время вызова idpAddFile. Вы можете сделать функцию-оболочку вместо idpAddFile.

var
  FilesToDownload: string;

procedure AddFileForDownload(Url, Filename: string);
begin
  idpAddFile(Url, Filename);
  FilesToDownload := FilesToDownload + '      ' + ExtractFileName(FileName) + #13#10;
end;
...