2016-09-27 13 views
0

カスタムウィザードページを作成しました。インストールの最後にインストールチェックリストを表示して、インストールが正常に行われたかどうかを確認します。Inno Setupのカスタムウィザードページ(「インストールチェックリスト」)が実行時にテキストを変更します

だから私は私のinitializeWizard()

Page := CreateCustomPage(wpInstalling, 'Installation Checklist', 'Status of all installation components'); 

RichEditViewer := TRichEditViewer.Create(Page); 
RichEditViewer.Width := Page.SurfaceWidth; 
RichEditViewer.Height := Page.SurfaceHeight; 
RichEditViewer.Parent := Page.Surface; 
RichEditViewer.ScrollBars := ssVertical; 
RichEditViewer.UseRichEdit := True; 
RichEditViewer.RTFText := ''// I want this attribute to be set in CurStepChanged() 

にこのコードを持って

Crucial Step......................SUCCESS 
Optional Step.....................FAILURE 

のようなものは、後の時点でRichEditViewer.RTFTextを追加したり、編集する方法はありますか? Pageはグローバル変数ですが、どの属性にもアクセスしようとするとエラーになります。 wpInstallingの後にテキストを編集したいので、インストール手順が成功したかどうかを知ることができます。

+0

*「どの属性にもアクセスしようとするとエラーが発生します」* - どの属性ですか? –

答えて

1

私はこのメソッドの巨大なファンではありませんが、あなたはRichEditViewerをグローバルとして設定し、任意の時点でどの関数でも編集することは簡単です。

var 
    RichEditViewer: TRichEditViewer; 

procedure InitializeWizard(); 
var 
    Page: TWizardPage; 
begin 
    Page := CreateCustomPage(wpInstalling, 'Installation Checklist', ''); 

    RichEditViewer := TRichEditViewer.Create(Page); 
    RichEditViewer.Width := Page.SurfaceWidth; 
    RichEditViewer.Height := Page.SurfaceHeight; 
    RichEditViewer.Parent := Page.Surface; 
    RichEditViewer.ScrollBars := ssVertical; 
    RichEditViewer.UseRichEdit := True; 
end; 

procedure CurStepChanged(CurStep: TSetupStep); 
begin 
    if CurStep=ssPostInstall then RichEditViewer.RTFText := 'STUFF'; 
end; 

注目すべきは、ページ自体がグローバルである必要もないことです。

+0

このメソッドでどのような問題があるのか​​分かりません。それははるかに良い方法です。唯一の他の方法は、 'FindComponent'メソッドを使って' Page'の子を探すか、 'Controls'リストを反復することです。 –

+0

グローバル変数に対する個人的な嫌悪感。 –

+0

これについては既に説明しました:[グローバル変数を使用せずにカスタムウィザードページから値を読み込む](http://stackoverflow.com/q/38792593/850848) –

関連する問題