विभिन्न विंडोज अनुप्रयोगों के साथ काम करते समय और डेल्फी, हम एक मानक के साथ काम करने के आदी हो गए हैं डायलॉग बॉक्स किसी फ़ाइल को खोलने और सहेजने के लिए, टेक्स्ट को ढूंढना और बदलना, प्रिंट करना, फोंट चुनना या रंग सेट करना।
इस लेख में, हम एक विशेष ध्यान देने के साथ उन संवादों के कुछ सबसे महत्वपूर्ण गुणों और विधियों की जांच करेंगे खुला हुआ तथा सहेजें डायलॉग बॉक्स।
सामान्य संवाद बॉक्स घटक पैलेट के डायलॉग टैब पर पाए जाते हैं। ये घटक मानक विंडोज संवाद बॉक्स (आपके \ Windows \ System निर्देशिका में DLL में स्थित) का लाभ उठाते हैं। एक सामान्य संवाद बॉक्स का उपयोग करने के लिए, हमें फॉर्म पर उचित घटक (घटक) रखने की आवश्यकता है। सामान्य संवाद बॉक्स घटक गैर-दृश्य होते हैं (एक विज़ुअल डिज़ाइन-टाइम इंटरफ़ेस नहीं होता है) और इसलिए रनटाइम पर उपयोगकर्ता के लिए अदृश्य होते हैं।
TOpenDialog और TSaveDialog
फ़ाइल खोलें और फ़ाइल सहेजें संवाद बॉक्स में कई सामान्य गुण हैं। फाइल ओपन का उपयोग आमतौर पर फाइलों को चुनने और खोलने के लिए किया जाता है। फ़ाइल सेव डायलॉग बॉक्स (फाइल के रूप में भी सेव किया गया डायलॉग बॉक्स के रूप में इस्तेमाल किया जाता है) का उपयोग फाइल को बचाने के लिए उपयोगकर्ता से फाइलनाम प्राप्त करने के लिए किया जाता है। TOpenDialog और TSaveDialog के कुछ महत्वपूर्ण गुण हैं:
- विकल्प गुण बॉक्स के अंतिम रूप और अनुभव को निर्धारित करने में बहुत महत्वपूर्ण हैं। उदाहरण के लिए, कोड की एक पंक्ति:
साथ में OpenDialog1 करविकल्प: = विकल्प + [ofAllowMultiSelect, ofFileMustExist];
यदि उपयोगकर्ता पहले से ही कोई फ़ाइल न चुनने की कोशिश करता है, तो विकल्पों को पहले से ही सेट करके रखेगा और उपयोगकर्ताओं को संवाद में एक से अधिक फ़ाइल का चयन करने की अनुमति देगा। - InitialDir संपत्ति का उपयोग उस निर्देशिका को निर्दिष्ट करने के लिए किया जाता है जो फ़ाइल निर्देशिका बॉक्स प्रदर्शित होने पर प्रारंभिक निर्देशिका के रूप में उपयोग की जाएगी। निम्न कोड आश्वस्त करेगा कि ओपन डायलॉग बॉक्स की प्रारंभिक निर्देशिका अनुप्रयोग स्टार्टअप निर्देशिका है।
SaveDialog1.InitialDir: = ExtractFilePath (अनुप्रयोग। ExeName);
- फ़िल्टर प्रॉपर्टी में फ़ाइल प्रकारों की एक सूची होती है जिसमें से उपयोगकर्ता चुन सकता है। जब उपयोगकर्ता सूची से एक फ़ाइल प्रकार चुनता है, तो संवाद में केवल चयनित प्रकार की फाइलें प्रदर्शित की जाती हैं। फ़िल्टर आसानी से फ़िल्टर संपादक संवाद बॉक्स के माध्यम से डिज़ाइन समय पर सेट किया जा सकता है।
- प्रोग्राम कोड में फ़ाइल मास्क बनाने के लिए, फ़िल्टर प्रॉपर्टी के लिए एक मान निर्दिष्ट करें जिसमें एक विवरण होता है और एक ऊर्ध्वाधर बार (पाइप) वर्ण द्वारा अलग किया गया मास्क होता है। ऐशे ही:
OpenDialog1.Filter: = 'पाठ फ़ाइलें (* .txt) | * .txt | सभी फाइलें (*। *) | *। * ';
- फ़ाइल का नाम संपत्ति। एक बार जब उपयोगकर्ता संवाद बॉक्स में ओके बटन पर क्लिक करता है, तो इस संपत्ति में चुनी गई फ़ाइल का पूरा पथ और फ़ाइल नाम होगा।
निष्पादित
वास्तव में सामान्य संवाद बॉक्स बनाने और प्रदर्शित करने के लिए हमें प्रक्रिया करने की आवश्यकता है निष्पादित रनटाइम पर विशिष्ट संवाद बॉक्स की विधि। TFindDialog और TReplaceDialog को छोड़कर, सभी डायलॉग बॉक्स को मामूली रूप से प्रदर्शित किया जाता है।
सभी सामान्य संवाद बॉक्स हमें यह निर्धारित करने की अनुमति देते हैं कि क्या उपयोगकर्ता रद्द करें बटन पर क्लिक करता है (या ESC दबाता है)। चूंकि निष्पादित विधि सही है यदि उपयोगकर्ता ने ठीक बटन पर क्लिक किया है तो हमें यह सुनिश्चित करने के लिए रद्द बटन पर क्लिक करना होगा कि दिए गए कोड को निष्पादित नहीं किया गया है।
अगर OpenDialog1.Execute फिर ShowMessage (OpenDialog1.FileName);
यह कोड फ़ाइल ओपन डायलॉग बॉक्स को प्रदर्शित करता है और विधि को निष्पादित करने के लिए "सफल" कॉल के बाद एक चयनित फ़ाइल नाम प्रदर्शित करता है (जब उपयोगकर्ता ओपन पर क्लिक करता है)।
नोट: यदि उपयोगकर्ता ओके बटन पर क्लिक करता है, तो फ़ाइल लौटाएं, यह सही है। फ़ाइल के नाम पर डबल क्लिक किया गया (फ़ाइल संवाद के मामले में), या कीबोर्ड पर एंटर दबाया। यदि उपयोगकर्ता रद्द करें बटन पर क्लिक करता है, Esc कुंजी दबाता है, सिस्टम क्लोज बटन के साथ या Alt-F4 कुंजी संयोजन के साथ डायलॉग बॉक्स को बंद करता है, तो एक्सक्यूट रिटर्न गलत है।
कोड से
प्रपत्र पर OpenDialog घटक रखे बिना रनटाइम पर ओपन डायलॉग (या किसी अन्य) के साथ काम करने के लिए, हम निम्नलिखित कोड का उपयोग कर सकते हैं:
प्रक्रिया TForm1.btnFromCodeClick (प्रेषक: TObject); वर OpenDlg: TOpenDialog; शुरू OpenDlg: = TOpenDialog। बनाएँ (स्व); {यहां विकल्प सेट करें ...}अगर OpenDlg। निष्पादित फिरशुरू {यहां कुछ करने का कोड} समाप्त; OpenDlg। नि: शुल्क; समाप्त;
नोट: एक्सक्यूट को कॉल करने से पहले, हम OpenDialog घटक के किसी भी गुण को सेट (कर सकते हैं) कर सकते हैं।
MyNotepad
अंत में, यह कुछ वास्तविक कोडिंग करने का समय है। इस लेख (और कुछ अन्य जो आने वाले हैं) के पीछे का पूरा विचार एक साधारण MyNotepad एप्लिकेशन - नोटपैड एप्लिकेशन की तरह स्टैंडअलोन विंडोज बनाना है।
इस लेख में हमें ओपन और सेव डायलॉग बॉक्स के साथ प्रस्तुत किया गया है, तो चलिए देखते हैं उन्हें एक्शन में।
MyNotepad का उपयोगकर्ता इंटरफ़ेस बनाने के लिए चरण:
. डेल्फी शुरू करें और फ़ाइल-नया एप्लिकेशन चुनें।
. एक मेमो, OpenDialog, SaveDialog दो बटन को एक फॉर्म पर रखें।
. बटन का नाम बदलें btnOpen, बटन 2 से btnSave।
कोडिंग
1. FormCreate ईवेंट के लिए निम्नलिखित कोड असाइन करने के लिए ऑब्जेक्ट इंस्पेक्टर का उपयोग करें:
प्रक्रिया TForm1.FormCreate (प्रेषक: Tobject); शुरूसाथ में OpenDialog1 करशुरू विकल्प: = विकल्प + [ofPathMustExist, ofFileMustExist]; आरंभिक: = ExtractFilePath (अनुप्रयोग)। ExeName); फ़िल्टर: = 'पाठ फ़ाइलें (* .txt) | * .txt'; समाप्त; साथ में SaveDialog1 करशुरू आरंभिक: = ExtractFilePath (अनुप्रयोग)। ExeName); फ़िल्टर: = 'पाठ फ़ाइलें (* .txt) | * .txt'; समाप्त; मेमो 1। क्रॉलबार्स: = ssBoth; समाप्त;
यह कोड लेख के आरंभ में चर्चा के अनुसार कुछ खुले संवाद गुणों को सेट करता है।
2. इस कोड को btnOpen और btnSave बटन की ऑनक्लिक घटना के लिए जोड़ें:
प्रक्रिया TForm1.btnOpenClick (प्रेषक: TObject); शुरूअगर OpenDialog1.Execute फिरशुरू Form1. अनुकूलन: = OpenDialog1.ileName; Memo1.Lines। LoadFromFile। (OpenDialog1.FileName); मेमो 1.SelStart: = 0; समाप्त; समाप्त;
प्रक्रिया TForm1.btnSaveClick (प्रेषक: TObject); शुरू SaveDialog1.ileName: = फॉर्म 1। कैप्शन; अगर SaveDialog1.Execute फिरशुरू Memo1.Lines। फाइल में बचाएं। (SaveDialog1.ileName + '.txt'); Form1.Caption: = SaveDialog1.FileName; समाप्त; समाप्त;
अपना प्रोजेक्ट चलाएं। आप इस पर विश्वास नहीं कर सकते; फाइलें "वास्तविक" नोटपैड की तरह ही खुल रही हैं और सहेज रही हैं।
अंतिम शब्द
बस। अब हमारे पास अपना "छोटा" नोटपैड है।