2017-05-02 54 views
2

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

我看到这个代码:

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文件的名称?

回答

3

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

  • 创建一个新的自定义“文件名”的标签;
  • 隐藏原来的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; 

Description instead of filename

+0

感谢马丁!但是,当我取消安装时如何隐藏MyFilenameLabel? http://subefotos.com/ver/?973275bbaf99b26034ed6a8b9ebaa54do.png Deshaciendo cambios =回滚变化 –

+0

没有这个事件。但是你可以尝试安排一个频繁的定时器,并使用'CurInstallProgressChanged'中的相同代码。 –