परिचय।
मुझे आशा है, आपको Microsoft ट्री व्यू और इमेजलिस्ट कंट्रोल के पिछले कुछ सप्ताह के ट्यूटोरियल सत्र दिलचस्प और अगले एपिसोड के लिए तैयार लगे। यदि आपने अभी तक पहले के लेखों को नहीं पढ़ा है तो लिंक नीचे दिए गए हैं।
- माइक्रोसॉफ्ट ट्री व्यू कंट्रोल ट्यूटोरियल
- ट्री व्यू कंट्रोल के साथ एक्सेस मेनू बनाना
- ट्री व्यू नोड्स में इमेज असाइन करना
यह पोस्ट पिछले सप्ताह के एपिसोड की निरंतरता है।
पिछले सप्ताह हमने कुछ चित्र बनाए हैं और उन्हें छविसूची . पर अपलोड किया है Microsoft ट्री व्यू कंट्रोल के लिए VBA कोड का उपयोग करके नियंत्रण करें। ImageList नियंत्रण संदर्भ ट्री व्यू कंट्रोल की ImageList प्रॉपर्टी को पास कर दिया गया है। इन चरणों के बाद, हम सीधे छवि के कुंजी-नाम . का उपयोग कर सकते हैं या इंडेक्स नंबर नोड के रूप में [छवि] और [चयनित छवि] पैरामीटर नोड्स में।जोड़ें () माइक्रोसॉफ्ट ट्री व्यू ऑब्जेक्ट की विधि। इन दोनों नियंत्रणों की सहायता से, हम एक सुंदर Microsoft Access प्रोजेक्ट मेनू बना सकते हैं, जिसमें मेनू आइटम ट्री-लाइन्स और नेत्रहीन मनभावन मेनू आइटम छवियों के साथ एक पदानुक्रमित संरचना में हों।
नोड इमेज के साथ पिछले हफ्ते का ट्रायल रन फॉर्म।
पिछले हफ्ते की एक्सेस प्रोजेक्ट मेन्यू इमेज नीचे दी गई है, जिसमें नोड इमेज और ट्री-लाइन हैं।
इमेजलिस्ट कंट्रोल में इमेज अपलोड करने के लिए VBA कोड।
निम्नलिखित VBA कोड है, जिसका उपयोग हमने इमेजलिस्ट ऑब्जेक्ट नोड्स में इमेज अपलोड करने के लिए किया है:
मंद टीवी MSComctlLib के रूप में। any.tvw.Nodes.Clear'Initialize ImageList ObjectSet objimgList =Me.ImageList0.Object' छवियों को डेटाबेस में सहेजा जाना चाहिए pathstrPath =CurrentProject.Path &"\" objimgList के साथ। ListImages'कुंजी नाम केस संवेदनशील हैं। .Add , "FolderClose", LoadPicture(strPath &"folderclose2.jpg") .Add , "FolderOpen", LoadPicture(strPath &"folderopen2.jpg")। Add , "ArrowHead", LoadPicture(strPath &"arrowhead.bmp" ) .Add , "LeftArrow", LoadPicture(strPath &"LeftArrow.bmp") .Add , "RightArrow", LoadPicture(strPath &"RightArrow2.bmp") End With tvw .ImageList =objimgListEnd WithEnd Sub
उपरोक्त कोड प्रस्तुत करते समय मैंने उल्लेख किया है कि छवियों को वीबीए कोड के बिना इमेजलिस्ट कंट्रोल में अपलोड करने का एक आसान तरीका है। इसके अलावा, मैंने उन छवियों को साझा करने का वादा किया है, जिनका मैंने उपरोक्त डेमो एक्सेस मेनू नोड्स में उपयोग किया है। हम थोड़ी देर में उस पर पहुंचेंगे।
हम केवल कुछ नहीं बना रहे थे छवियों और उनका उपयोग करना। लेकिन, हमने अपने ट्री व्यू-आधारित एक्सेस प्रोजेक्ट मेनू के लिए कुछ सार्थक चित्र बनाए हैं।
रूट-स्तरीय फ़ोल्डर छवियों का मामला लें। फ़ोल्डर बंद करें छवि शैली का उपयोग रूट-स्तरीय नोड के सामान्य दृश्य के लिए किया जाता है, जबकि इसके सभी चाइल्ड नोड्स को दृश्य से छिपाया जाता है। जब उपयोगकर्ता रूट-स्तरीय नोड पर क्लिक करता है FolderOpen छवि प्रकट होती है और अपने बच्चे के नोड्स को उजागर करती है। नोड पर एक दूसरा क्लिक छवि को सामान्य दृश्य में नहीं बदलेगा, जबकि इसमें फोकस है, लेकिन चाइल्ड नोड्स दृश्य से गायब हो सकते हैं, जो TreeView0_NodeClick() पर निर्भर करता है। घटना प्रक्रिया कोड।
इसी तरह, चाइल्ड नोड्स में बाईं ओर LeftArrow . होता है सामान्य दृश्य में छवि और थोड़ी बड़ी छवि दायां तीर , क्लिक करने पर दाईं ओर इशारा करते हुए। हाइलाइट किए गए शब्द मुख्य नाम हैं जिनका उपयोग ImageList नियंत्रण में किया जाता है। क्लिक क्रिया फ़ॉर्म को खोलती है , रिपोर्ट करें, या मैक्रो, चयनित बच्चे नोड के आधार पर।
इमेजलिस्ट फॉर्म पर नियंत्रण करता है।
छविसूची उपरोक्त frmMenu . के डिज़ाइन दृश्य पर नियंत्रण हाइलाइट किया गया है संदर्भ के लिए फॉर्म नीचे दिया गया है:
इमेजलिस्ट कंट्रोल प्रॉपर्टी शीट।
ImageList की संपत्ति पत्रक छवि संदर्भ के लिए नीचे दी गई है:
पिछले सप्ताह के अभ्यास और तैयारियों की समीक्षा करें।
पिछले सप्ताह हमने छवि-आकार 16 x 16 पिक्सेल . का चयन किया है और वीबीए कोड का उपयोग करके आवश्यक छवियों को उपरोक्त इमेजलिस्ट नियंत्रण में अपलोड किया। सभी छवियों को अपलोड करने के बाद, हमने ट्री व्यू कंट्रोल की ImageList संपत्ति के लिए ImageList ऑब्जेक्ट संदर्भ पारित किया है। .
उपरोक्त चरणों के बाद, हम इंडेक्स नंबर . का उपयोग कर सकते हैं या कुंजी-मूल्य जोड़ें () . में छवियों का ट्री व्यू नोड्स के विधि पैरामीटर।
हमने ImageList की Add() विधि का पहला पैरामीटर निर्दिष्ट नहीं किया है। लेकिन, जोड़ें() विधि स्वयं प्रत्येक छवि के लिए छविसूची नियंत्रण में अनुक्रमणिका संख्या सम्मिलित करती है। याद रखें, जब आप कुंजी . दर्ज करते हैं Nodes में मान। जोड़ें () विधि की [छवि], [चयनित छवि] पैरामीटर यह केस सेंसिटिव . है . यह बेहतर है, जब आप ImageList Control की कुंजी . में कुंजी मान दर्ज करते हैं टेक्स्ट बॉक्स, छोटे अक्षरों के साथ।
अब, जैसा कि मैंने इमेजलिस्ट कंट्रोल में इमेज लोड करने का आसान तरीका दिखाने का वादा किया है। यह आपकी डिस्क से मैन्युअल रूप से सभी आवश्यक छवियों को एक-एक करके चुनने और उन्हें ImageList में जोड़ने जितना आसान है। नियंत्रण, बिना किसी वीबीए कोड के।
इसके अलावा, आप इमेजलिस्ट कंट्रोल को अन्य प्रोजेक्ट्स के साथ साझा कर सकते हैं, इमेजलिस्ट कंट्रोल को किसी अन्य प्रोजेक्ट फॉर्म में कॉपी और पेस्ट करके, सभी छवियों को बरकरार रखते हुए। फिर आपको केवल कुंजी-मूल्य . का उपयोग करना है या इंडेक्स नंबर ट्री व्यू कंट्रोल नोड्स की ऐड () विधि में।
यदि आपने पिछले सप्ताह की पोस्ट से डेमो डेटाबेस पहले ही डाउनलोड कर लिया है तो ProjectMenuV21.accdb खोलें। . हमने प्रपत्र frmMenu . की एक प्रति सहेज ली है नए नाम के साथ frmMenu2 ।
frmMenu2 फ़ॉर्म पर इमेजलिस्ट कंट्रोल जोड़ना।
-
प्रपत्र खोलें frmMenu2 डिज़ाइन व्यू में।
-
Microsoft ImageList Control सम्मिलित करें Activex नियंत्रण सूची से, कहीं खाली स्थान पर frmMenu2 प्रपत्र पर।
-
इसका नाम बदलें ImageList0. . के लिए प्रॉपर्टी का मान
-
छवि सूची नियंत्रण पर राइट-क्लिक करें, हाइलाइट करें ImageListCtrl ऑब्जेक्ट विकल्प, प्रदर्शित मेनू पर, और गुण . चुनें ।
-
प्रीसेट छवि आकार चुनें 16 x 16 पिक्सेल विकल्प, गुणों पर सामान्य टैब। यह महत्वपूर्ण है कि आप सामान्य . पर इनमें से किसी एक विकल्प का चयन करें छवियों . में किसी भी छवि को जोड़ने से पहले पहले टैब करें टैब।
-
छवियां चुनें टैब। गुण छवियां टैब निम्न छवि की तरह दिखता है:
-
चित्र सम्मिलित करें . पर क्लिक करें कमांड बटन, folder_closed ढूंढें नमूना छवि (यदि आपके पास एक है या आपने पहले तैयार की गई छवि का चयन किया है), आपने पिछले सप्ताह एक परीक्षण चलाने के लिए बनाया है, इसे चुनें और खोलें पर क्लिक करें कमांड बटन।
चयनित छवि डालने के बाद ImageList नियंत्रण नीचे दी गई छवि की तरह दिखेगा।
-
तीन टेक्स्ट बॉक्स नियंत्रण:इंडेक्स , कुंजी, और टैग अब सक्षम हैं। सूचकांक नियंत्रण का सूचकांक मान 1 . है इसमें स्वचालित रूप से डाला गया।
-
टेक्स्ट दर्ज करें folder_close या कुंजी में ट्री व्यू नियंत्रण के ऐड () मेथड के पैरामीटर में जो भी कुंजी-मान आप उपयोग करना पसंद करते हैं टेक्स्ट बॉक्स नियंत्रण। इसका डेटा प्रकार स्ट्रिंग प्रकार का होना चाहिए और सभी छवि कुंजी मानों में अद्वितीय होना चाहिए।
-
टैग संपत्ति का उपयोग कुछ उपयोगी जानकारी को रिकॉर्ड करने के लिए किया जा सकता है, जैसे छवि का पथ नाम।
-
अपनी डिस्क से एक के बाद एक सभी आवश्यक छवियां जोड़ें, और आपके द्वारा अपलोड की जाने वाली सभी छवियों के लिए कुंजी टेक्स्ट नियंत्रण में उपयुक्त कुंजी मान दर्ज करें। सरल, अर्थपूर्ण और याद रखने में आसान प्रमुख मूल्यों का उपयोग करें।
-
यदि आप नियंत्रण से कुछ छवि हटाना चाहते हैं तो उस छवि का चयन करें और चित्र निकालें क्लिक करें।
-
छवियों को लोड करने के बाद लागू करें . पर क्लिक करें कमांड बटन और फिर ठीक Click क्लिक करें छविसूची . को बंद करने के लिए नियंत्रण।
नोट: याद रखें, आपने छवि आकार 16 x 16 पिक्सेल का चयन करने के बाद, सभी छवियां जोड़ दी हैं सामान्य . पर टैब। छवियाँ अपलोड करने के बाद आप सामान्य टैब पर छवि का आकार नहीं बदल सकते। यदि आप एक अलग छवि आकार विकल्प पसंद करते हैं, तो चित्र अपलोड करने के बाद आपको पहले सभी छवियों को हटाना होगा। तभी आप एक भिन्न छवि आकार विकल्प का चयन करने में सक्षम होंगे और फिर अपलोड प्रक्रिया को दोबारा दोहराएंगे।
अधिक छवियों के साथ इमेजलिस्ट नियंत्रण:
-
यदि आप सुनिश्चित नहीं हैं कि आपने किसी विशेष छवि के लिए कौन सा कुंजी-मान दर्ज किया है तो कुंजी में कुंजी-मान प्रदर्शित करने के लिए छवि पर क्लिक करें पाठ बॉक्स।
-
सभी आवश्यक छवियों को नियंत्रण में अपलोड करने के बाद वे छविसूची नियंत्रण में रहते हैं। यदि आपको किसी अन्य प्रोजेक्ट में समान छवियों की आवश्यकता है तो आप इमेजलिस्ट कंट्रोल की एक प्रति कहीं भी बना सकते हैं या छवियों के साथ फॉर्म/डेटाबेस को दूसरों के साथ साझा कर सकते हैं। आप एक नए स्थान से इस तरह और अधिक चित्र जोड़ सकते हैं।
-
सभी छवियों को अपलोड करने के बाद हमें ImageList नियंत्रण संदर्भ को वृक्ष दृश्य . के पास भेजने की आवश्यकता है नियंत्रण की छविसूची संपत्ति जैसा पहले हमने वीबीए कोड के माध्यम से इमेज अपलोड करने के बाद किया था।
-
निम्नलिखित नमूना कोड नई परियोजनाओं में ट्री व्यू कंट्रोल की इमेजलिस्ट प्रॉपर्टी के लिए इमेजलिस्ट के संदर्भ को पास करेगा।
Dim objimgList as MSComctlLib.ImageList'Initialize ImageList ObjectSet objimgList =Me.ImageList0.ObjectWith tvw .ImageList =objimgListEnd With
एक कमांड बटन के साथ नोड्स का विस्तार/संक्षिप्त करना
-
डिज़ाइन व्यू में frmMenu2 फॉर्म खोलें।
-
सभी को संक्षिप्त करें . चुनें कमांड बटन, इसकी क्लिक इवेंट प्रक्रिया खोलें, और कोड को हटा दें।
-
उस कमांड बटन को फॉर्म से ही हटा दें।
-
सभी का विस्तार करें Select चुनें कमांड बटन, इसकी क्लिक इवेंट प्रक्रिया खोलें।
-
निम्नलिखित वीबीए कोड को कॉपी करें और मौजूदा लाइनों को cmdExpand_Click() के बीच में पेस्ट करें। . . उप समाप्त करें नीचे दर्शाई गई पंक्तियाँ:
निजी उप cmdExpand_Click()Dim Nodexp MSComctlLib.NodeIf cmdExpand.Caption ="Expand All" के रूप में cmdExpand.Caption ="सभी को संकुचित करें" tvw में प्रत्येक Nodeexp के लिए। tvw.Nodes में प्रत्येक Nodeexp के लिए सभी का विस्तार करें।
frmMenu2 को सामान्य दृश्य में सहेजें और खोलें।
कमांड बटन का शीर्षक है सभी का विस्तार करें अभी।
सभी नोड्स का विस्तार करने के लिए कमांड बटन पर क्लिक करें। सभी नोड्स अब विस्तारित रूप में हैं। कमांड बटन का कैप्शन सभी को संक्षिप्त करें . में बदल जाता है ।
उस पर फिर से क्लिक करें और सभी नोड्स एक संक्षिप्त स्थिति में हैं, कैप्शन टेक्स्ट वापस सभी का विस्तार करें में बदल जाता है फिर से।
अगले हफ्ते हम यह जानने के लिए नोड्स पर चेकबॉक्स का उपयोग देखेंगे कि हम चेक किए गए नोड्स की पहचान कैसे कर सकते हैं और उनके साथ काम कर सकते हैं।
कक्षा मॉड्यूल
- एमएस-एक्सेस क्लास मॉड्यूल और वीबीए
- एमएस-एक्सेस वीबीए क्लास ऑब्जेक्ट और एरेज़
- एमएस-एक्सेस बेस क्लास और व्युत्पन्न ऑब्जेक्ट
- VBA-बेस क्लास और व्युत्पन्न ऑब्जेक्ट-2
- आधार वर्ग और व्युत्पन्न वस्तु प्रकार
- एमएस-एक्सेस रिकॉर्डसेट और क्लास मॉड्यूल
- एक्सेस क्लास मॉड्यूल और रैपर क्लासेस
- आवरण वर्ग की कार्यक्षमता