2016-04-25 106 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事件修改某些東西。 –

相關問題