【问题标题】:Inno Setup - How to create a personalized FilenameLabel with the names I want?Inno Setup - 如何使用我想要的名称创建个性化的 FilenameLabel?
【发布时间】:2020-04-02 16:21:16
【问题描述】:

如何用我想要的名字创建一个个性化的FilenameLabel?如何实现Inno Setup - How to hide certain filenames while installing? (FilenameLabel) 的建议(第三个选项,CurInstallProgressChanged,复制文件名,你想从隐藏到自定义标签显示)。

我看到了这段代码:

procedure InitializeWizard;
begin
  with TNewStaticText.Create(WizardForm) do
  begin
    Parent := WizardForm.FilenameLabel.Parent;
    Left := WizardForm.FilenameLabel.Left;
    Top := WizardForm.FilenameLabel.Top;
    Width := WizardForm.FilenameLabel.Width;
    Height := WizardForm.FilenameLabel.Height;
    Caption := ExpandConstant('{cm:InstallingLabel}');
  end;
  WizardForm.FilenameLabel.Visible := False;
end;

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

【问题讨论】:

    标签: inno-setup


    【解决方案1】:

    如您链接的答案中所述:

    • 创建一个新的自定义“文件名”标签;
    • 隐藏原FilenameLabel
    • 实现CurInstallProgressChanged 以将文件名映射到您想要显示的任何内容,并将其显示在自定义标签上。
    [Files]
    Source: "data1.dat"; DestDir: {app}
    Source: "data2.dat"; DestDir: {app}
    Source: "data3.dat"; DestDir: {app}
    
    [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 CurInstallProgressChanged(CurProgress, MaxProgress: Integer);
    var
      Filename: string;
    begin
      Filename := ExtractFileName(WizardForm.FilenameLabel.Caption);
    
      { Map filenames to descriptions }
      if CompareText(Filename, 'data1.dat') = 0 then Filename := 'Some hilarious videos'
        else
      if CompareText(Filename, 'data2.dat') = 0 then Filename := 'Some awesome pictures'
        else
      if CompareText(Filename, 'data3.dat') = 0 then Filename := 'Some cool music';
    
      MyFilenameLabel.Caption := Filename;
    end;
    

    【讨论】:

    • 谢谢马丁!但是,当我取消安装时如何隐藏 MyFilenameLabel? subefotos.com/ver/?973275bbaf99b26034ed6a8b9ebaa54do.png Deshaciendo cambios = 回滚更改
    • 没有事件。但是您可以尝试安排一个频繁的计时器,并在那里使用与CurInstallProgressChanged 中相同的代码。
    猜你喜欢
    • 2015-12-21
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 2016-02-29
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多