2010-02-07 26 views

回答

7

這應該工作:

Wizardform.NextButton.Enabled := False; 

欲瞭解更多信息,請查閱InnoSetup新聞組:
http://www.jrsoftware.org/newsgroups.php

+0

我檢查了 - 它不起作用。 – Sasha 2010-02-07 22:58:34

+0

你在使用什麼樣的活動? CurPageChanged? – Zyphrax 2010-02-07 23:15:42

+0

這應該工作。你在哪裏使用這個代碼? – 2010-02-07 23:39:35

0

抱歉無法直接幫助您解決特定問題。我想指出,Inno Setup似乎不是基於Windows Installer,它可能會確保您的程序無法通過Windows徽標要求。

我建議你看看WiX 3,它是一個直接來自Microsoft的開源安裝程序創建者,並且得到了許多使用它的人的優秀支持,並允許您輕鬆創建常規Windows Installer程序包。使用Wix可以輕鬆禁用「下一步」按鈕。

+0

謝謝。我會在我的下一個項目中嘗試... – Sasha 2010-02-07 22:59:53

+0

(據說)MSI要求已經被降低 – Anders 2010-02-07 23:18:52

+0

對不起,它是什麼人「丟棄」? – Sasha 2010-02-08 07:45:42

4

我猜你現在找到了一個解決辦法。 因爲我遇到了同樣的問題並找到了解決方案,所以我在此發佈信息以期幫助他人。

我想在用戶開始應用程序升級後禁用CANCEL按鈕。 使用此過程:

procedure CurPageChanged(CurPageID: Integer); 
begin 
    // always disable the cancel button; no going back now!!! 
    if UpgradeInstallationMode then 
    Wizardform.CancelButton.Enabled := False; 
end; 

同樣的手動這樣做的另一種方式是:

procedure DisableCancelButton(); 
begin 
    WizardForm.CancelButton.Enabled := False; 
    WizardForm.Update; 
end; 

procedure EnableCancelButton(); 
begin 
    WizardForm.CancelButton.Enabled := True; 
    WizardForm.Update; 
end; 

另一種方法是使用這個[設置]指令:

[Setup] 
AllowCancelDuringInstall=yes 

這是非常對簡單場景很有用;您可以使用此代替上述過程。

+1

我想說,強制'WizardForm'重新繪製自己('WizardForm.Update'行)是沒有必要的,即使你已經回答瞭如何禁用取消按鈕,我會給你我的贊成票。 – TLama 2013-10-18 14:40:56

+0

是的,你可能是對的;這只是一個**矯枉過正**!有時我只是使用**雙擊**確定! Java Swing repaint()仍然困擾着我,我想......但是,如果你想在'CurPageChanged()'外面使用這個,你必須'WizardForm.Update;'否則按鈕不會刷新。 – fubar 2013-10-20 20:17:01

相關問題