परिचय।
पिछले हफ्ते हमने ट्री व्यू कंट्रोल पर एक्सेस प्रोजेक्ट मेनू बनाया है और मुझे आशा है कि आप इसे माइक्रोसॉफ्ट एक्सेस के अपने संस्करण में स्वयं बना सकते हैं और इसे चला सकते हैं। एक डेमो डेटाबेस है, जिसे एक्सेस 2007 के तहत बनाया गया है और डाउनलोड के लिए निम्नलिखित पोस्ट से जुड़ा हुआ है। उस लेख का लिंक नीचे दिया गया है:
- ट्री व्यू कंट्रोल के साथ एक्सेस मेनू बनाना
आप डेटाबेस डाउनलोड कर सकते हैं ताकि आप उपरोक्त विषय से संबंधित नया वीबीए कोड जोड़ सकें और उसी डेटाबेस में इसे आजमा सकें।
यह पिछले लेख की निरंतरता है और हमें छवियों को नोड्स को असाइन करने और सीखने के लिए उसी डेमो एक्सेस मेनू प्रोजेक्ट की आवश्यकता है।
ट्री व्यू कंट्रोल के लिए एमएस-ऑफिस वर्जन इश्यूज।
यदि आपको Microsoft Access के अपने संस्करण में डेमो डेटाबेस चलाने में कोई समस्या थी तो आप कुछ सुधारात्मक कार्रवाइयों के लिए निम्न लिंक का संदर्भ ले सकते हैं, जो आपकी समस्या को हल करने में सहायक हो सकता है:
- सॉल्व्ड MSCOMCTL.OCX डाउनलोड रजिस्टर 64 बिट विन्डोज़ फ़ॉन्ट>
नमूना डेमो इमेज।
जब हम छवियों . के साथ अपना एक्सेस प्रोजेक्ट मेनू पूरा करते हैं नोड्स पर नीचे दी गई छवि की तरह दिखेगा:
वैकल्पिक रूप से, हम प्रत्येक नोड पर दो छवियां असाइन कर सकते हैं। एक छवि सामान्य स्थिति में प्रदर्शित होती है और जब नोड एक क्लिक प्राप्त करता है तो दूसरी छवि प्रदर्शित होती है।
यहां, हमने रूट-लेवल नोड को क्लोज्ड-फोल्डर . के साथ असाइन किया है सामान्य दृश्य के लिए चित्र और फ़ोल्डर-जैसा खोलें नोड को क्लिक मिलने पर छवि दिखाई देगी।
इसी तरह, चाइल्ड-नोड्स में एक एरो-हेड इमेज होती है, जो सामान्य दृश्य में बाईं ओर होती है, और एरो-हेड इमेज, दाईं ओर इंगित करती है, जब नोड का चयन किया जाता है।
आप दोनों (सामान्य और क्लिक इवेंट के लिए) के लिए एक ही छवि का उपयोग कर सकते हैं ताकि दोनों उदाहरणों में एक ही छवि बिना किसी बदलाव के बनी रहे। यदि आप इन दो मापदंडों में से किसी एक का उपयोग करते हैं, मान लें कि केवल सामान्य दृश्य पैरामीटर का उपयोग करें और दूसरे को छोड़ दें, तो नोड क्लिक कोई छवि प्रदर्शित नहीं करेगा।
नोड्स के लिए आदर्श छवि आकार।
छवि प्रारूप किसी भी सामान्य छवि प्रकार का हो सकता है, जैसे .bmp , .jpg , .jpeg , .ico , .tiff आदि। आप Google पर खोज करके बहुत सारे चिह्न चित्र पा सकते हैं। आदर्श छवि आकार, जो नोड पर अच्छा दिखता है, 16 x 16 पिक्सेल . है . छविसूची नियंत्रण में पूर्व निर्धारित छवि-आकार मान हैं जैसे 16 x 16 , 32 x 32 , 48 x 48 पिक्सेल, और कस्टम आकार चुनने के लिए विकल्प।
उच्च छवि आकार विकल्प 32 x 32 या 48 x 48 पिक्सेल बड़ी छवियां प्रदर्शित करेंगे और ट्री व्यू डिस्प्ले पर अधिक स्थान घेरेंगे।
विभिन्न छवि आकारों के साथ नोड ग्राफ़िक्स।
नीचे दी गई नमूना छवि 32 x 32 पिक्सेल shows दिखाती है आकार चिह्न:
नोड छवि आकार के साथ ट्री व्यू नियंत्रण 48 x 48 पिक्सेल :
यदि आप कस्टम . का उपयोग करना पसंद करते हैं छवि विकल्प तब प्रदान किया गया वास्तविक छवि आकार बिना किसी बदलाव के प्रदर्शित होगा।
छवि गुणवत्ता और आकार संबंधी विचार।
हमने छवि आकार 16 x 16 . का उपयोग किया है ऊपर के पहले नमूना छवि में। यदि हम एक कस्टम छवि आकार अपलोड करते हैं, जो 48 x 48 से बड़ा है, जैसे 512 x 512 पिक्सेल या अधिक, और विकल्प 16 x 16 . का उपयोग करें यह आकार को निर्दिष्ट रिज़ॉल्यूशन तक कम कर देता है लेकिन छवि की स्पष्टता कम या विकृत हो जाएगी।
सबसे अच्छा तरीका अच्छी गुणवत्ता वाली छोटी छवियां ढूंढना है, जो 16 x 16 पिक्सेल रिज़ॉल्यूशन (कैनवास आकार) में फ़िट हो सकें। यह छवि की गुणवत्ता के बिना, 16 x 16 पिक्सेल या कस्टम सेटिंग्स दोनों के साथ काम करता है।
आप विभिन्न छवि प्रकारों, आकारों और गुणवत्ता के साथ प्रयोग कर सकते हैं, अंतिम रूप देने से पहले ट्रायल रन करें। आप MS-Paint, या आपके पास जो भी छवि संपादन प्रोग्राम हैं, का उपयोग कर सकते हैं और अपनी पसंद के अनुसार चित्र बना/आयात और संपादित कर सकते हैं।
आगे बढ़ने से पहले चार या अधिक छोटी छवियां बनाएं और उन्हें डेटाबेस फ़ोल्डर में सहेजें। उन्हें ImageList नियंत्रण में अपलोड करें और Nodes Add () विधि के अंतिम दो मापदंडों को बदलकर ट्री व्यू कंट्रोल पर आज़माएं।
आप डेमो डेटाबेस डाउनलोड कर सकते हैं:ProjectMenu.accdb , पिछले लेख पृष्ठ से।
ट्रायल रन की तैयारी करें।
-
ProjectMenu.accdbखोलें डेटाबेस।
-
प्रपत्र frmMenu . की एक प्रति बनाएं और इसे frmMenu2 . नाम दें और इसे बाद में उपयोग के लिए रखें।
-
frmMenuखोलें डिज़ाइन व्यू में।
-
ActiveX नियंत्रण Select चुनें विकल्प, नियंत्रणों . से बटन समूह, और फ़ाइल ढूंढें Microsoft ImageList Control और ठीक . क्लिक करें एक छविसूची insert सम्मिलित करने के लिए इसे प्रपत्र पर खाली क्षेत्र में कहीं भी नियंत्रित करें, खींचें और रखें।
छविसूची . के साथ फ़ॉर्म डिज़ाइन दृश्य में हाइलाइट किया गया नियंत्रण संदर्भ के लिए नीचे दिया गया है:
-
इसकी संपत्ति पत्रक प्रदर्शित करें और नाम . बदलें ImageList0 . के लिए प्रॉपर्टी का मान ।
-
इमेजलिस्ट कंट्रोल पर राइट-क्लिक करें और ImageListCtrl ऑब्जेक्ट को हाइलाइट करें प्रदर्शित मेनू में विकल्प और गुण Select चुनें नियंत्रण की छवि सेटिंग संपत्ति पत्रक प्रदर्शित करने के लिए।
-
16 x 16 . चुनें सामान्य . पर छवि आकार रेडियो बटन टैब, यह दर्शाता है कि हमें नोड के लिए तीन छवि आकारों में से सबसे छोटे आकार की आवश्यकता है। यहां सेटिंग उन सभी छवियों पर प्रभावी होती है जिन्हें हम इमेजलिस्ट कंट्रोल में जोड़ते हैं।
-
लागू करें क्लिक करें कमांड बटन और फिर ठीक संपत्ति पत्रक बंद करने के लिए बटन।
सबसे पहले, हमें आवश्यक छवियों को छविसूची . में जोड़ना होगा ट्री व्यू कंट्रोल में उनका उपयोग करने से पहले नियंत्रण करें।
इमेज लोड करने के तरीके।
जोड़ने . का एक आसान और कठिन तरीका है छवि सूची नियंत्रण में छवियां। आसान तरीका वीबीए कोड के बिना काम करता है और दूसरी विधि को वीबीए की आवश्यकता होती है। हम पहले वीबीए के साथ कठिन तरीके से जाएंगे और फिर आसान तरीके से प्रयास करेंगे, ताकि आपको अंतर पता चल सके कि कोड का उपयोग कब करना है और कब बिना कोड के। Node. पर जो अच्छा लगता है उसे अंतिम रूप देने से पहले विभिन्न छवियों, आकारों के साथ प्रयोग करने के लिए एक VBA-आधारित विधि अच्छी है।
हम ImageList ऑब्जेक्ट के जोड़ें () . का उपयोग करेंगे नियंत्रण में छवियों को जोड़ने की विधि जैसे हमने ट्री व्यू डेटा के लिए Node. इस तरह हम ImageList नियंत्रण में कई चित्र जोड़ते हैं और रन-टाइम पर उनका उपयोग करते हैं।
ImageList नियंत्रण की Add() विधि का सिंटैक्स नीचे दिया गया है:
ObjImgList.ListImages.Add([Index],[Key],[Picture]) As ListImage
पहले दो पैरामीटर वैकल्पिक हैं। तीसरा तर्क LoadPicture() . का उपयोग करता है निर्दिष्ट स्थान से छवियों को खोलने और सूची में जोड़ने का कार्य। फ़ंक्शन पैरामीटर छवि फ़ाइल पथनाम है। सभी छवि फ़ाइलों को एक के बाद एक इमेजलिस्ट ऑब्जेक्ट में जोड़ा जाता है, जिस क्रम में उन्हें रखा जाता है। 1 . से शुरू होने वाली क्रमागत संख्याओं में अनुक्रमणिका मान स्वतः उत्पन्न होते हैं (एक) आगे।
ImageList ऑब्जेक्ट में सभी छवियों को जोड़ने के बाद, ऑब्जेक्ट ट्री व्यू कंट्रोल की इमेजलिस्ट प्रॉपर्टी . को संदर्भ दिया जाना चाहिए .
VBA कोड।
ऊपर हमारे मेनू के लिए छवियों को लोड करने के लिए नमूना VBA कोड नीचे दिया गया है:
Dim tvw As MSComctlLib.TreeView
Const KeyPrfx As String = "X"
Dim objimgList As MSComctlLib.ImageList
Private Sub CreateImageList()
Dim strPath As String
'TreeView Object reference set in tvw
Set tvw = Me.TreeView0.Object
'Clear the Tree View Nodes, if any.
tvw.Nodes.Clear
'ImageList Object reference set in objimglist
Set objimgList = Me.ImageList0.Object
strPath = CurrentProject.Path & "\"
With objimgList.ListImages
'Key Names are Case sensitive.
.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
With tvw
.ImageList = objimgList
End With
End Sub
एक बार जब हम इस प्रक्रिया के माध्यम से हो जाते हैं तो छवियों को ट्री व्यू नोड्स में जोड़ना आसान होता है।
TreeView Nodes Add() विधि और छवि पैरामीटर।
ट्री व्यू ऑब्जेक्ट जोड़ें () विधि के अंतिम दो पैरामीटर नोड छवियों के लिए हैं। आइए ट्री व्यू ऑब्जेक्ट नोड्स ऐड () विधि के सिंटैक्स को एक बार और देखें:
tvw.Nodes.Add([Relative],[Relationship],[Key],[Text],[Image],[SelectedImage]) As Node
अंतिम दो पैरामीटर नोड इमेज के लिए हैं। पहला छवि पैरामीटर नोड के सामान्य दृश्य के लिए है और दूसरी छवि तब प्रदर्शित होती है जब नोड का चयन किया जाता है। [छवि] और [चयनित छवि] मान या तो इमेजलिस्ट इंडेक्स नंबर . हो सकते हैं या कुंजी- मूल्य।
CreateImageList() सब-रूटीन इमेजलिस्ट कंट्रोल में पांच इमेज जोड़ता है। पहली दो छवियों में से, पहली (FolderClose .) ) रूट-स्तरीय नोड के सामान्य दृश्य के लिए है और दूसरा (FolderOpen) के लिए है ) छवि तब प्रदर्शित होती है जब रूट-स्तरीय नोड का चयन किया जाता है।
अंतिम दो छवियों का उपयोग चाइल्ड नोड्स के सामान्य दृश्य और क्लिक इवेंट क्रिया के लिए किया जाता है।
एरोहेड छवि को नजरअंदाज किया जाता है।
फॉर्मलोड() परिवर्तन के साथ ईवेंट प्रक्रिया।
संशोधित फॉर्मलोड () घटना प्रक्रिया नीचे दी गई है:
Private Sub Form_Load()
Dim db As Database
Dim rst As Recordset
Dim nodKey As String
Dim PKey As String
Dim strText As String
Dim strSQL As String
Dim tmpNod As MSComctlLib.Node
Dim Typ As Variant
'1. Initializes TreeView Control Object
'2. Creates ImageList in ImageListObject
CreateImageList
With tvw
.Style = tvwTreelinesPlusMinusPictureText
.LineStyle = tvwRootLines
.LabelEdit = tvwManual
.Font.Name = "Verdana"
.Indentation = 400
End With
strSQL = "SELECT ID, Desc, PID, Type,Macro,Form,Report FROM Menu;"
Set db = CurrentDb
Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)
Do While Not rst.EOF And Not rst.BOF
If Nz(rst!PID, "") = "" Then
nodKey = KeyPrfx & CStr(rst!ID)
strText = rst!desc
Set tmpNod = tvw.Nodes.Add(, , nodKey, strText, "FolderClose", "FolderOpen")
'Root-Level Node Description in Bold letters
With tmpNod
.Bold = True
End With
Else
PKey = KeyPrfx & CStr(rst!PID)
nodKey = KeyPrfx & CStr(rst!ID)
strText = rst!desc
Set tmpNod = tvw.Nodes.Add(PKey, tvwChild, nodKey, strText, "LeftArrow", "RightArrow")
'Check for the presense of Type Code
If Nz(rst!Type, 0) > 0 Then
Typ = rst!Type
Select Case Typ
Case 1 'save type Code & Form Name in Node Tag Property
tmpNod.Tag = Typ & rst!Form
Case 2 'save type Code & Report Name in Node Tag Property
tmpNod.Tag = Typ & rst!Report
Case 3 'save type Code & Macro Name in Node Tag Property
tmpNod.Tag = Typ & rst!Macro
End Select
End If
End If
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Set db = Nothing
End Sub जोड़ें () TreeView Nodes . की विधि पंक्ति ऊपर वीबीए कोड पर हाइलाइट किया गया है, जहां छवि कुंजी स्ट्रिंग पैरामीटर मान सामान्य और क्लिक दृश्य दोनों के लिए सम्मिलित किए जाते हैं।
वैकल्पिक रूप से, आप छवि अनुक्रमणिका मान 1, 2 . का उपयोग कर सकते हैं के लिए रूट-लेवल नोड्स और इंडेक्स नंबर 4, 5 चाइल्ड नोड्स के लिए।
आप मान बदल सकते हैं और स्वयं को आज़मा सकते हैं।
आपके लिए डाउनलोड करने के लिए सभी परिवर्तनों और अतिरिक्त छवि लोडिंग प्रक्रिया के साथ एक नया डेमो डेटाबेस संलग्न है।
नोट: चार नई छवियां बनाएं, जैसा कि ऊपर बताया गया है, अपने स्वयं के परीक्षण के लिए और उपरोक्त कोड में छवियों के नाम और स्थान के पते बदलें, यदि आप छवियों को किसी भिन्न स्थान पर सहेजते हैं।
इसके बाद, हम छवियों के साथ आसान विधि का प्रयास करेंगे और मैं अपनी छवियां आपके साथ साझा करूंगा।
डाउनलोड के लिए नमूना डेटाबेस।
- एमएस-एक्सेस और ई-मेल
- एक्सेस2007 से वर्ड-मेल मर्ज को आमंत्रित करें
- स्वचालित ईमेल अलर्ट