2016-04-25 68 views
1

我对Inno Setup的下一个代码:Inno Setup的:从另一个控制的OnClick事件访问自定义控制

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; 

我不知道我怎样才能访问自定义控制器向导页从处理程序一个他们?

+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事件修改某些东西。 –

相关问题