2011-12-05 10 views
9

मैं डेल्फी 7 का उपयोग कर रहा हूं और मैं एक विज़ार्ड इंटरफ़ेस बनाने की कोशिश कर रहा हूं। मुझे नहीं पता कि विज़ार्ड बनाने का कोई आसान तरीका है, इसलिए मैं विज़ार्ड के प्रत्येक चरण के लिए अलग-अलग फॉर्म बनाने की सोच रहा था, और जब उपयोगकर्ता "अगला" पर क्लिक करता है तो सक्रिय फॉर्म बंद हो जाता है और अगला खुलता है। screen-shotडेल्फी में एक विज़ार्ड इंटरफ़ेस बनाना 7

मैं एक प्रक्रिया है कि पैरामीटर के रूप में 2 रूपों ले कर दिया है::

यहाँ लगातार दो रूपों में से एक स्क्रीन शॉट है फार्म का है कि बंद कर दिया जाएगा और विज़ार्ड के अगले रूप

class Procedure Tspad.nextForm(showForm, closeForm: TForm); 
begin 
    closeForm.Close; 
    showForm.Showmodal; 
end; 

जब मैं "अगला" बटन folowing कोड निष्पादित होने पर क्लिक करें:

Tspad.nextForm(echipContractForm, clientContractForm); 

जब मैं कार्यक्रम चलाने के लिए, और मैं "अगला" बटन दबाते हैं, तो अगले प्रपत्र apeare एस लेकिन इलाज एक बंद नहीं है।

मैं यह काम कैसे कर सकता हूं, या एक जादूगर बनाने के लिए एक और अधिक प्रभावी तरीका है?

+4

उपयोग TPageControl: //wiki.delphi-jedi: http://delphi.about.com/od/delphitips2007/qt/hidepagectrltab.htm – SimaWB

+3

परियोजना जेडी (JVCL) एक जादूगर घटक [TJvWizard] (http कहा जाता है। org/wiki/JVCL_Help: TJvWizard)। –

उत्तर

20

एक विज़ार्ड बनाने का एक बहुत ही आम तरीका पृष्ठ नियंत्रण का उपयोग करना है। विज़ार्ड का प्रत्येक विशिष्ट पृष्ठ पृष्ठ नियंत्रण में एक अलग पृष्ठ/टैबशीट है। मेरा मानना ​​है कि यह प्रभावी ढंग से विंडोज़ जादूगरों को कैसे लागू करता है।

स्वाभाविक रूप से आप सभी टैब छिपाना चाहते हैं। प्रत्येक टैबशीट के लिए TabVisibleFalse पर सेट करके ऐसा करें। जब आप विज़ार्ड के माध्यम से आगे और पीछे की ओर बढ़ना चाहते हैं, उदा। जब उपयोगकर्ता अगले या पिछले बटन पर क्लिक करता है, तो अपनी वरीयता के आधार पर ActivePage या ActivePageIndex सेट करके इसे प्रभावित करें।

+0

इस तरह मैंने इसे अतीत में किया है। पृष्ठ नियंत्रण और कुछ बटन के साथ, अपने विज़ार्ड के लिए एक अलग रूप है। –

+0

मैं इस के साथ, लेकिन यह भी LaKraven के विचार से सहमत प्रति पृष्ठ एक रूप है, और रनटाइम पर पृष्ठों डॉक करने के लिए। अन्यथा जादूगर स्पेगेटी की एक विशाल गेंद में बदल जाते हैं। –

+0

@ वॉरेन लाक्रैवन वास्तव में रूपों के बजाय फ्रेम का सुझाव दे रहा है और मुझे डिजाइन समय पर उन्हें डॉकिंग करना लगता है। लेकिन किसी भी तरह से काम करता है और स्पेगेटी को खाड़ी में रखने के लिए एक बहुत अच्छी तकनीक हो सकती है, मैं सहमत हूं। –

14

एक ही रूप में प्रदर्शित सामग्री के विभाजन के लिए एक अच्छा अभ्यास फ्रेम्स का उपयोग है।

एक फ्रेम, एक रूप की तरह एक बहुत कुछ है सिवाय यह अपने आप में कोई खिड़की नहीं है, बल्कि एक मेजबान फार्म अंदर बैठता है।

जब साथ (के रूप में डेविड हेफेरनान सुझाव दिया है) एक TPageControl या यहां तक ​​कि एक TNotebook संयुक्त (जो बहुत-बहुत वास्तव में TPageControl रूप में ही है, केवल यह टैब्स के साथ शुरू की जरूरत नहीं है), तो आप के साथ खत्म एक आसानी से बनाए रखने योग्य जादूगर।

+2

+1 लेकिन 'टीएनोटबुक 'एक विषमता का थोड़ा सा है। यह मेरे लिए विरासत दिखता है और शायद उपयोग करने के लिए थोड़ा मुश्किल है। –

+0

मैं इसे उल्लेख है क्योंकि मैं यदि TPageControl वास्तव में डेल्फी 7 में मौजूद है याद नहीं कर सकते (मैं इसे एक बहुत इन दिनों का उपयोग करें, लेकिन कभी देखकर याद नहीं कर सकते यह लगभग डेल्फी 7) – LaKraven

+2

हाँ, यह D7 में मौजूद था और लंबे समय से पहले तो बहुत –

2

आप कुछ घटकों का परीक्षण कर सकते हैं जो इस कार्य के साथ आपकी मदद कर सकते हैं (आंतरिक रूप से tPageControl या TNotebook का उपयोग कर)। this link देखें।

सम्मान।

11

जेवीसीएल के पास एक बहुत ही सरल और प्रभावी तरीके से एक जादूगर बनाने के लिए एक अच्छा नियंत्रण है (TJvWizard)। http://jvcl.delphi-jedi.org/

+0

सहमत; सही जवाब के रूप में, के बाद से मेरा अधिक विस्तार अपने पर है। पहिया को फिर से शुरू करने में आपको बहुत समय बचाता है। –

0

आप टीएमएस TAdvSmoothStepControl (मुफ्त में नहीं!) पर भी विचार कर सकते हैं। एक अन्य समाधान है, लेकिन अपने कार्यक्रम के लिए केवल 'बाह्य', Inno Setup उपयोग करने के लिए एक जादूगर बनाने के लिए, यहां तक ​​कि 'गैर स्थापना सेटअप' उद्देश्यों के लिए है।

वास्तव में इनो सेटअप के साथ आप बहुत सारे विचार (संशोधित .ini फ़ाइल और रजिस्ट्री, प्रोग्राम्स प्रारंभ/बंद करें ...) कर सकते हैं जो किसी प्रोग्राम को 'इंस्टॉल' किए बिना विज़ार्ड के लिए उपयोगी हो सकता है।

+1

आपके उत्तर में अंतिम विवरण यह मानता है कि ओपी एक स्थापना विज़ार्ड बनाने का प्रयास कर रहा है। स्क्रीनशॉट अन्यथा सुझाव देते हैं। मैं संपादन का सुझाव देते हैं अपने जवाब का वह हिस्सा बाहर और TAdvSmoothStepControl की सिफारिश – LaKraven

+0

@LaKraven Inno सेटअप के लिए मुख्य उपयोग एक अधिष्ठापन सेटअप बनाने के लिए है जबकि (जो निश्चित रूप से एक अच्छा घटक है) छोड़ रहा है, आप भी यह (उपयोग कर सकते हैं कुछ हैक साथ) सरल संचालन के लिए एक जादूगर के रूप में, एक प्रोग्राम बंद करें, उपयोगकर्ता विकल्पों के अनुसार .ini फ़ाइलों को बदलें, और प्रोग्राम को फिर से चलाएं। हो सकता है कि यह सभी के लिए स्पष्ट न हो और मैं अपना जवाब संपादित करूंगा। – philnext

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