2012-02-14 33 views
3

このようなメッセージを定義することが可能である:チェンジ実行時のメッセージ/テキスト(Inno Setupの)

[Messages] 
WelcomeLabel2=This wizard will update [name] to version [name/ver] 

今、私はこのように、実行時にこのメッセージを変更したいです

procedure InitializeWizard; 
begin 
    //this doesn't work   
    WelcomeLabel2=NEW MESSAGE 
end; 

これを行う正しい方法は何ですか?ウェルカムページの内容を動的に変更して、セットアップが新しいインストールまたはアップデートを実行しているかどうかを表示します。インストールディレクトリにいくつかの実行可能ファイルが存在することに基づいています。

答えて

5

片道。

[Languages] 
Name: "en"; MessagesFile: "compiler:Default.isl" 

[CustomMessages] 
en.WelcomeLabel2_ForInstall=intstall {#SetupSetting("AppName")}, {#SetupSetting("AppVersion")} 
en.WelcomeLabel2_ForUpdate=update {#SetupSetting("AppName")} to {#SetupSetting("AppVersion")} 

[code] 
procedure InitializeWizard(); 
var 
    message: string; 
begin 
    //some logic 
    message := 'WelcomeLabel2_ForUpdate'; 
    WizardForm.WelcomeLabel2.Caption := CustomMessage(message); 
end; 

procedure CurPageChanged(CurPageID: Integer); 
begin 
    case CurPageID of 
     wpFinished : WizardForm.FinishedLabel.Caption := 'bla bla'; 
    end; 
end; 
+0

WizardForm.FinishedLabelNoIcons.Captionでもこれをやりたいのですが、Inno Setupコンパイラは「Unknown identifier」というエラーになります。 – koen

+0

上記で更新されたものは、 'WizardForm.FinishedLabel'(ただし' InitializeWizard'ではありません)経由で取得できるようです。 –

+0

ありがとうございました。非常に多くのメッセージを変更しなければならないので、コードセクションのMessagesFileを動的に変更することをお勧めします。あなたはそれをする方法を知っていますか? – koen

0

ええと、これはうまくいきません。 1つの方法は、インストールプロセス用のレイアウトと更新プロセス用のレイアウトを持つインストーラの2つのページを作成することです。次に、ページ順序を手動で決定する方法でページ順序を変更します。

新しいページをプロセスに統合する例は、私の答えhereにあります。

+0

ウェルカムページに基づいて新しいページを作成することは可能でしょうか?または、ウェルカムページを再作成する必要がありますか? – koen

+0

アレックスKの解答は正しいですが、私は「ページの継承」のようなものはないと思います。ページをゼロから作成する必要があります。 –

関連する問題