inno-setup - 为 Inno 下载插件构建备忘录文本
问题描述
我查看了 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 个项目将被下载:
- 帮助文档设置
- VC Redist x86
- VC Redist x64
- 点网框架
相关文件是使用添加的idpAddFile
(虽然我没有指定文件大小,所以会有一点延迟)。我已经要求它在之后显示下载页面wpPreparing
:
idpDownloadAfter(wpPreparing);
理想情况下,我希望在备忘录页面上列出我们确定用户想要下载的文件。
解决方案
你知道你正在下载什么文件,所以在你打电话的时候收集他们的名字idpAddFile
。您可以制作一个包装函数来替代idpAddFile
.
var
FilesToDownload: string;
procedure AddFileForDownload(Url, Filename: string);
begin
idpAddFile(Url, Filename);
FilesToDownload := FilesToDownload + ' ' + ExtractFileName(FileName) + #13#10;
end;
推荐阅读
- angular - 需要使用 Angular 5/6/7 中的打字稿将小数小时.分钟转换为最接近的四分之一小时
- google-apps-script - 在 Google 工作表的下一个空行上激活 A 列中的单元格
- java - org.springframework.web.client.ResourceAccessException:对“http://localhost:8080/”的 GET 请求出现 I/O 错误:连接被拒绝:连接
- javascript - 如何使用 IF 函数停止 JavaScript 中的所有函数
- javascript - 是什么导致我的简单 JavaScript for-in 循环没有为指定 HTML 元素的背景着色?
- javascript - 非法参数:未定义,字符串(bcrypt)
- mysql - 使用 springboot 和 mysql 进行分片测试
- twitter-bootstrap - 引导按钮不涵盖全文
- gcc - 如何在 Centos7 上配置 GNU Autotools 以编译 32 位程序?
- r - R data.table:将面板中的每个组重新设置为在另一列中找到的值