2016-04-25 17 views
1

のOnClickイベントからカスタムコントロールへのアクセス私はInno Setupのための次のコードを持っている:Inno Setupの:別のコントロール

procedure CheckBoxClick(Sender: TObject); 
begin 
    { How to make BrowseButton visible from here? } 
end; 

procedure CreateTheWizardPage; 
var 
    Page: TWizardPage; 
    BrowseButton, FormButton: TNewButton; 
    CheckBox: TNewCheckBox; 
    Memo: TNewMemo; 
begin 
    Page := PageFromID(wpReady);  
    BrowseButton := TNewButton.Create(Page); 
    CheckBox := TNewCheckBox.Create(Page); 
    CheckBox.OnClick := @CheckBoxClick; 
end; 

を私は私は1つのハンドラ手続きからウィザードページ上のカスタムコントローラにアクセスすることができますどのように思ったんだけどそのうちの?

+0

はこのヘルプをしていますか? http://news.jrsoftware.org/news/innosetup.code/msg22922.html –

答えて

1

あなたはBrowseButton、変数グローバルにし、イベントハンドラの前に、それを定義する必要があります。

var 
    BrowseButton: TButton; 

procedure CheckBoxClick(Sender: TObject); 
begin 
    { Now you can use the BrowseButton here } 
end; 

procedure CreateTheWizardPage; 
var 
    Page: TWizardPage; 
    FormButton: TNewButton; 
    CheckBox: TNewCheckBox; 
    Memo: TNewMemo; 
begin 
    Page := PageFromID(wpReady);  
    BrowseButton := TNewButton.Create(Page); 
    CheckBox := TNewCheckBox.Create(Page); 
    CheckBox.OnClick := @CheckBoxClick; 
end; 
+0

ええ、私は同じ解決策を考えました。多分私はこの方法を選ぶでしょう。 –

+0

他の解決策はありません( 'Sender.Parent.FindComponent'を使う以外は、最初にコンポーネントの名前を付ける必要があります)。 –

+1

これは全く異なる何かを助け、実行時にグローバル変数とCurPageChangedイベントを使って何かを修正する方法も示しています。 –