विजुअल बेसिक छात्रों के बाद लूप्स और सशर्त बयानों और सबरूटीन्स के बारे में और आगे के बारे में जानें चीजें जो वे अक्सर पूछते हैं, "मैं एक बिटमैप, एक wav फ़ाइल, एक कस्टम कर्सर या कुछ अन्य विशेष प्रभाव कैसे जोड़ूं?" एक जवाब है संसाधन फ़ाइलें. जब आप Visual Studio संसाधन फ़ाइलों का उपयोग करके एक फ़ाइल जोड़ते हैं, तो वे अधिकतम निष्पादन की गति और न्यूनतम परेशानी के लिए सीधे आपके Visual Basic प्रोजेक्ट में एकीकृत हो जाते हैं पैकेजिंग और तैनाती तुम्हारी आवेदन.
संसाधन फाइलें VB 6 और दोनों में उपलब्ध हैं VB.NET, लेकिन वे जिस तरह से उपयोग किए जाते हैं, सब कुछ की तरह, दोनों प्रणालियों के बीच काफी भिन्न है। ध्यान रखें कि VB प्रोजेक्ट में फ़ाइलों का उपयोग करने का यह एकमात्र तरीका नहीं है, लेकिन इसके असली फायदे हैं। उदाहरण के लिए, आप बिटमैप को एक में शामिल कर सकते हैं चित्र बॉक्स नियंत्रण या उपयोग mciSendString Win32 एपीआई। "MCI" एक उपसर्ग है जो आमतौर पर एक मल्टीमीडिया कमांड स्ट्रिंग को इंगित करता है।
VB 6 में रिसोर्स फ़ाइल बनाना
आप किसी प्रोजेक्ट में संसाधन VB 6 और VB.NET दोनों में देख सकते हैं प्रोजेक्ट एक्सप्लोरर
खिड़की (VB.NET में समाधान एक्सप्लोरर - उन्हें इसे बस थोड़ा अलग करना था)। VB 6 में संसाधनों के डिफ़ॉल्ट उपकरण नहीं होने से एक नई परियोजना नहीं होगी। तो चलो एक परियोजना के लिए एक सरल संसाधन जोड़ें और देखें कि यह कैसे किया जाता है।चरण एक का चयन करके VB 6 शुरू करना है मानक EXE पर परियोजना नया स्टार्टअप संवाद में टैब। अब का चयन करें ऐड-इन्स मेनू बार पर विकल्प, और फिर मेनू ऐड-इन मैनेजर ... यह ऐड-इन मैनेजर डायलॉग विंडो खोलेगा।
सूची को नीचे स्क्रॉल करें और खोजें VB 6 संसाधन संपादक. आप इसे केवल डबल-क्लिक कर सकते हैं या आप चेक मार्क लगा सकते हैं लोड / अनलोड अपने VB 6 वातावरण में इस उपकरण को जोड़ने के लिए बॉक्स। अगर आपको लगता है कि आप संसाधन संपादक का उपयोग करने जा रहे हैं, तो आप बॉक्स में एक चेक मार्क भी लगा सकते हैं स्टार्टअप पर लोड और आपको भविष्य में फिर से इस कदम से नहीं गुजरना पड़ेगा। "ओके" पर क्लिक करें और संसाधन संपादक पॉप खुले। आप अपनी परियोजना में संसाधनों को जोड़ना शुरू करने के लिए तैयार हैं!
मेनू बार पर जाएं और चुनें परियोजना फिर नई संसाधन फ़ाइल जोड़ें या संसाधन संपादक में केवल राइट-क्लिक करें और उस संदर्भ मेनू से "खोलें" चुनें जो पॉप अप करता है। एक विंडो खुलेगी, जो आपको संसाधन फ़ाइल के नाम और स्थान के लिए संकेत देती है। डिफ़ॉल्ट स्थान संभवतः वह नहीं होगा जो आप चाहते हैं, इसलिए अपने प्रोजेक्ट फ़ोल्डर में नेविगेट करें और अपनी नई संसाधन फ़ाइल का नाम दर्ज करें फ़ाइल का नाम डिब्बा। इस लेख में, मैं इस फ़ाइल के लिए "AboutVB.RES" नाम का उपयोग करूँगा। आपको सत्यापन विंडो में फ़ाइल के निर्माण की पुष्टि करनी होगी, और एक "AboutVB.RES" फ़ाइल बनाई जाएगी और संसाधन संपादक में भर दी जाएगी।
VB6 का समर्थन करता है
VB6 निम्नलिखित का समर्थन करता है:
- एक स्ट्रिंग टेबल संपादक
("स्ट्रिंग तालिकाएँ संपादित करें ...") - कस्टम कर्सर - "CUR" फाइलें
("कर्सर जोड़ें ...") - कस्टम आइकन - "ICO" फाइलें
("आइकन जोड़ें ...") - कस्टम बिटमैप - "बीएमपी" फाइलें
("बिटमैप जोड़ें ...") - प्रोग्रामर ने संसाधनों को परिभाषित किया
("कस्टम संसाधन जोड़ें ...")
VB 6 स्ट्रिंग्स के लिए एक साधारण संपादक प्रदान करता है, लेकिन आपके पास अन्य सभी विकल्पों के लिए किसी अन्य टूल में बनाई गई फ़ाइल होनी चाहिए। उदाहरण के लिए, आप साधारण Windows पेंट प्रोग्राम का उपयोग करके एक BMP फ़ाइल बना सकते हैं।
संसाधन फ़ाइल के प्रत्येक संसाधन की पहचान VB 6 द्वारा a की जाती है ईद और संसाधन संपादक में एक नाम। अपने कार्यक्रम के लिए एक संसाधन उपलब्ध कराने के लिए, आप उन्हें संसाधन संपादक में जोड़ते हैं और फिर अपने कार्यक्रम में उन्हें इंगित करने के लिए आईडी और संसाधन "टाइप" का उपयोग करते हैं। चलो संसाधन फ़ाइल में चार आइकन जोड़ते हैं और प्रोग्राम में उनका उपयोग करते हैं।
जब आप एक संसाधन जोड़ते हैं, तो वास्तविक फ़ाइल खुद ही आपकी परियोजना में कॉपी हो जाती है। दृश्य स्टूडियो 6 फ़ोल्डर में माउस का एक पूरा संग्रह प्रदान करता है ...
C: \ Program Files \ Microsoft Visual Studio \ Common \ Graphics \ Icons
परंपरा के साथ जाने के लिए, हम तत्वों के उपनिर्देशिका से ग्रीक दार्शनिक अरस्तू के चार "तत्वों" - पृथ्वी, जल, वायु और अग्नि का चयन करेंगे। जब आप उन्हें जोड़ते हैं, तो आईडी विजुअल स्टूडियो (101, 102, 103 और 104) द्वारा स्वचालित रूप से असाइन की जाती है।
किसी प्रोग्राम में आइकन का उपयोग करने के लिए, हम VB 6 "लोड संसाधन" फ़ंक्शन का उपयोग करते हैं। इनमें से चुनने के लिए कई कार्य हैं:
- LoadResPicture (सूचकांक, प्रारूप) बिटमैप्स, आइकन और कर्सर के लिए
VB पूर्वनिर्धारित स्थिरांक का उपयोग करें vbResBitmap बिटमैप के लिए, vbResIcon आइकन के लिए, और vbResCursor "प्रारूप" पैरामीटर के लिए कर्सर के लिए। यह फ़ंक्शन एक तस्वीर देता है जिसे आप सीधे उपयोग कर सकते हैं। LoadResData (नीचे समझाया गया) फ़ाइल में वास्तविक बिट्स युक्त स्ट्रिंग देता है। हम देखेंगे कि हम आइकन प्रदर्शित करने के बाद उसका उपयोग कैसे करेंगे।
- LoadResString (अनुक्रमणिका) तार के लिए
- LoadResData (सूचकांक, प्रारूप) 64K तक किसी भी चीज़ के लिए
जैसा कि पहले उल्लेख किया गया है, यह फ़ंक्शन संसाधन में वास्तविक बिट्स के साथ एक स्ट्रिंग लौटाता है। ये वे मान हैं जिनका उपयोग यहाँ प्रारूप पैरामीटर के लिए किया जा सकता है:
1 कर्सर संसाधन
2 बिटमैप संसाधन
3 आइकन संसाधन
4 मेनू संसाधन
5 डायलॉग बॉक्स
6 स्ट्रिंग संसाधन
7 फ़ॉन्ट निर्देशिका संसाधन
8 फ़ॉन्ट संसाधन
9 त्वरक तालिका
10 उपयोगकर्ता-परिभाषित संसाधन
12 समूह कर्सर
14 समूह आइकन
चूँकि हमारे AboutVB.RES संसाधन फ़ाइल में चार चिह्न हैं, तो उपयोग करते हैं LoadResPicture (सूचकांक, प्रारूप) VB 6 में एक कमांडबटन की पिक्चर प्रॉपर्टी को असाइन करने के लिए।
मैंने चार के साथ एक एप्लिकेशन बनाया OptionButton घटक पृथ्वी, जल, वायु और अग्नि और चार क्लिक घटनाओं - प्रत्येक विकल्प के लिए एक लेबल। फिर मैंने एक जोड़ा कमांड बटन और स्टाइल प्रॉपर्टी को "1 - ग्राफ़िकल" में बदल दिया। यह कमांडबटन के लिए कस्टम आइकन जोड़ने में सक्षम होने के लिए आवश्यक है। प्रत्येक OptionButton के लिए कोड (और फॉर्म लोड घटना - इसे आरंभ करने के लिए) इस तरह दिखता है (आईडी और कैप्शन के साथ अन्य OptionButton पर क्लिक करें घटनाओं के अनुसार):
कस्टम संसाधन
कस्टम संसाधनों के साथ "बड़ी बात" यह है कि आपको आमतौर पर उन्हें अपने प्रोग्राम कोड में संसाधित करने का एक तरीका प्रदान करना होगा। जैसा माइक्रोसॉफ्ट यह बताता है, "यह आमतौर पर विंडोज एपीआई कॉल के उपयोग की आवश्यकता होती है।" यही हम करेंगे।
हम जिस उदाहरण का उपयोग करेंगे, वह निरंतर मूल्यों की एक श्रृंखला के साथ एक सरणी को लोड करने का एक तेज़ तरीका है। याद रखें कि संसाधन फ़ाइल को आपकी परियोजना में शामिल किया गया है, इसलिए यदि आपको उन मूल्यों को लोड करने की आवश्यकता है परिवर्तन, आपको अधिक पारंपरिक दृष्टिकोण का उपयोग करना होगा जैसे कि एक अनुक्रमिक फ़ाइल जिसे आप खोलते हैं और पढ़ें। हम जिस विंडोज एपीआई का उपयोग करेंगे, वह है CopyMemory एपीआई। CopyMemory मेमोरी प्रकार के एक अलग ब्लॉक के लिए मेमोरी के ब्लॉक को उस प्रकार के डेटा के संबंध में जो वहां संग्रहीत है। यह तकनीक VB 6'ers को एक प्रोग्राम के अंदर डेटा कॉपी करने के लिए एक अल्ट्रा फास्ट तरीका के रूप में अच्छी तरह से जाना जाता है।
यह कार्यक्रम थोड़ा अधिक शामिल है क्योंकि पहले हमें एक संसाधन फ़ाइल तैयार करनी होगी जिसमें लंबे मानों की श्रृंखला होगी। मैंने केवल एक सरणी में मान असाइन किए हैं:
डिम लॉन्ग (10) अस लॉन्ग
longs (1) = 123456
longs (2) = 654321
... इत्यादि।
फिर मानों को एक फ़ाइल में लिखा जा सकता है MyLongs.longs VB 6 "पुट" कथन का उपयोग करना।
यह याद रखना एक अच्छा विचार है कि संसाधन फ़ाइल तब तक नहीं बदलती है जब तक आप पुराने को हटाकर नया जोड़ नहीं देते। इसलिए, इस तकनीक का उपयोग करके, आपको मूल्यों को बदलने के लिए कार्यक्रम को अपडेट करना होगा। संसाधन के रूप में अपने प्रोग्राम में फ़ाइल MyLongs.longs को शामिल करने के लिए, ऊपर वर्णित समान चरणों का उपयोग करके इसे संसाधन फ़ाइल में जोड़ें, लेकिन इसे कस्टम संसाधन जोड़ें ... Add Icon के बजाय... फिर MyLongs.longs फ़ाइल को जोड़ने के लिए फ़ाइल के रूप में चुनें। आपको उस संसाधन पर राइट क्लिक करके, "गुण" का चयन करके, और प्रकार को "लॉन्ग" में बदलकर संसाधन का "प्रकार" बदलना होगा। ध्यान दें कि यह आपकी MyLongs.longs फ़ाइल का फ़ाइल प्रकार है।
नया सरणी बनाने के लिए आपके द्वारा बनाई गई संसाधन फ़ाइल का उपयोग करने के लिए, पहले Win32 CopyMemory API कॉल की घोषणा करें:
फिर संसाधन फ़ाइल पढ़ें:
अगला, बाइट्स सरणी से डेटा को लंबे मानों की एक सरणी में स्थानांतरित करें। 4 से विभाजित बाइट्स के तार की लंबाई के पूर्णांक मान का उपयोग करके लॉन्ग वैल्यू के लिए एक सरणी आवंटित करें (जो कि प्रति लंबे 4 बाइट्स हैं):
अब, यह पूरी तरह से परेशानी की तरह लग सकता है, जब आप फॉर्म लोड इवेंट में केवल सरणी को इनिशियलाइज़ कर सकते हैं, लेकिन यह प्रदर्शित करता है कि कस्टम संसाधन का उपयोग कैसे करें। यदि आपके पास स्थिरांक का एक बड़ा सेट है जिसे आपको सरणी को आरंभीकृत करने की आवश्यकता है, तो यह किसी भी तेजी से चलेगा अन्य विधि जिसके बारे में मैं सोच सकता हूं और आपके पास करने के लिए आपके आवेदन के साथ एक अलग फाइल शामिल नहीं होगी यह।