2010-02-07 15 views

उत्तर

7

यह काम करना चाहिए:

Wizardform.NextButton.Enabled := False; 

InnoSetup समाचार समूह की जाँच अधिक जानकारी के लिए:
http://www.jrsoftware.org/newsgroups.php

+0

मैंने चेक किया - यह काम नहीं करता है। – Sasha

+0

आप किस प्रकार की घटना का उपयोग कर रहे हैं? CurPageChanged? – Zyphrax

+0

यह काम करना चाहिए। आप इस कोड का उपयोग कहां करते हैं? –

0

क्षमा करें आपकी विशेष समस्या में सीधे मदद करने में सक्षम नहीं होने के बारे में क्षमा करें। मैं यह इंगित करना चाहता हूं कि इनो सेटअप विंडोज इंस्टालर पर आधारित प्रतीत नहीं होता है, जो शायद यह सुनिश्चित करेगा कि आपके प्रोग्राम विंडोज लोगो आवश्यकताओं को पारित नहीं कर सकते हैं।

मैं सुझाव दूंगा कि आप WiX 3 पर एक नज़र डालें, जो माइक्रोसॉफ्ट से सीधे ओपन सोर्स इंस्टॉलर निर्माता है, इसका उपयोग करने वाले कई लोगों के उत्कृष्ट समर्थन के साथ और यह आपको आसानी से नियमित विंडोज इंस्टालर पैकेज बनाने की अनुमति देता है। अगला बटन अक्षम करना Wix का उपयोग करना आसान है।

+0

धन्यवाद। मैं इसे अपने अगले प्रोजेक्ट में आज़माउंगा ... – Sasha

+0

(माना जाता है) एमएसआई आवश्यकता – Anders

+0

को छोड़ दिया गया है क्षमा करें, यह पुरुष "गिरा" क्या है? – Sasha

4

मुझे लगता है कि आप अब तक कोई समाधान मिल गया है। चूंकि मुझे एक ही समस्या थी और समाधान मिला, इसलिए मैं इसे दूसरों की मदद करने की आशा में यहां पोस्ट कर रहा हूं।

उपयोगकर्ता ने एप्लिकेशन अपग्रेड शुरू करने के बाद कैंसल बटन को अक्षम करना चाहता था। इस प्रक्रिया उपयोग:

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

मैन्युअल रूप से भी ऐसा करने का एक और तरीका है:

[Setup] 
AllowCancelDuringInstall=yes 

यह बहुत है:

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

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

एक और तरीका है इस [सेटअप] के निर्देश के उपयोग करने के लिए किया जाएगा सरल परिदृश्यों के लिए उपयोगी; आप उपर्युक्त प्रक्रियाओं के बजाय इसका उपयोग कर सकते हैं।

+1

मैं कहूंगा कि 'विज़ार्डफॉर्म' को स्वयं को पुनर्निर्मित करने के लिए मजबूर करना (वह 'WizardForm.Update' लाइन) आवश्यक नहीं है, और भले ही आपने रद्द करें बटन को अक्षम करने का उत्तर दिया है, फिर भी मैं आपको अपना अपवर्त दे रहा हूं। – TLama

+0

हाँ, आप शायद सही हैं; यह सिर्फ एक ** ओवरकिल ** है! कभी-कभी मैं सुनिश्चित करने के लिए ** डबल टैप ** का उपयोग करता हूं! जावा स्विंग पेंट() अभी भी मुझे परेशान करता है, मुझे लगता है ... फिर भी, अगर आप इसे 'CurPageChanged()' के बाहर उपयोग करना चाहते हैं, तो आपको 'WizardForm.Update;' करना होगा या फिर बटन रीफ्रेश नहीं होगा। – fubar

संबंधित मुद्दे