Inno Setup - 如何使用我想要的名称创建个性化的 FilenameLabel?

Nic*_*o Z 4 inno-setup

如何用FilenameLabel我想要的名字创建个性化的名字?如何实施Inno Setup - 如何在安装时隐藏某些文件名的建议?(FilenameLabel) (第三个选项,CurInstallProgressChanged,将要显示的文件名从隐藏复制到自定义标签\xc2\xa8)。

\n\n

我看到这段代码:

\n\n
procedure InitializeWizard;\nbegin\n  with TNewStaticText.Create(WizardForm) do\n  begin\n    Parent := WizardForm.FilenameLabel.Parent;\n    Left := WizardForm.FilenameLabel.Left;\n    Top := WizardForm.FilenameLabel.Top;\n    Width := WizardForm.FilenameLabel.Width;\n    Height := WizardForm.FilenameLabel.Height;\n    Caption := ExpandConstant(\'{cm:InstallingLabel}\');\n  end;\n  WizardForm.FilenameLabel.Visible := False;\nend;\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,如果可能的话,如何定义我想要的文件名CurInstallProgressChanged

\n

Mar*_*ryl 6

正如您链接的答案中所解释的:

  • 创建一个新的自定义“文件名”标签;
  • 隐藏原件FilenameLabel
  • 实现CurInstallProgressChanged将文件名映射到您想要显示的任何内容并将其显示在自定义标签上。
[Files]
Source: "data1.dat"; DestDir: {app}
Source: "data2.dat"; DestDir: {app}
Source: "data3.dat"; DestDir: {app}
Run Code Online (Sandbox Code Playgroud)
[Code]

var
  MyFilenameLabel: TNewStaticText;

procedure InitializeWizard();
begin
  MyFilenameLabel := TNewStaticText.Create(WizardForm);
  { Clone the FilenameLabel }
  MyFilenameLabel.Parent := WizardForm.FilenameLabel.Parent;
  MyFilenameLabel.Left := WizardForm.FilenameLabel.Left;
  MyFilenameLabel.Top := WizardForm.FilenameLabel.Top;
  MyFilenameLabel.Width := WizardForm.FilenameLabel.Width;
  MyFilenameLabel.Height := WizardForm.FilenameLabel.Height;
  MyFilenameLabel.AutoSize := WizardForm.FilenameLabel.AutoSize;

  { Hide real FilenameLabel }
  WizardForm.FilenameLabel.Visible := False;
end;

procedure MapFilename(var Filename: string; Physical, Personalized: string);
begin
  if CompareText(Filename, Physical) = 0 then Filename := Personalized;
end;

procedure CurInstallProgressChanged(CurProgress, MaxProgress: Integer);
var
  Filename: string;
begin
  Filename := ExtractFileName(WizardForm.FilenameLabel.Caption);

  // Map filenames to descriptions
  MapFilename(Filename, 'data1.dat', 'Some hilarious videos');
  MapFilename(Filename, 'data2.dat', 'Some awesome pictures');
  MapFilename(Filename, 'data3.dat', 'Some cool music');

  MyFilenameLabel.Caption := Filename;
end;
Run Code Online (Sandbox Code Playgroud)

描述而不是文件名