2017-05-02 1 views
2

私が欲しい名前でパーソナライズされたFilenameLabelを作成するには? Inno Setup - How to hide certain filenames while installing? (FilenameLabel)からの提案を実装する方法(3番目のオプション、CurInstallProgressChanged、ファイル名をコピーする、隠しラベルからカスタムラベルに表示する)。可能であるならば、私は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; 

しかし、どのように定義する:

私はこのコードを参照してください?

答えて

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'と同じコードを使用することができます。 –

関連する問題