एक DBGrid के अंदर ड्रॉप डाउन सूची

यहां बताया गया है कि ड्रॉप-डाउन पिक सूची को DBGrid में कैसे रखा जाए। DBGrid के अंदर लुकअप फ़ील्ड को संपादित करने के लिए नेत्रहीन रूप से अधिक आकर्षक उपयोगकर्ता इंटरफ़ेस बनाएं - DBGrid कॉलम की PickList संपत्ति का उपयोग करना।

अब, आप जानते हैं कि लुकअप फ़ील्ड क्या हैं, और लुकअप फ़ील्ड प्रदर्शित करने के विकल्प क्या हैं डेल्फीDBGrid, यह देखने का समय है कि ड्रॉप-डाउन सूची बॉक्स से उपयोगकर्ता को लुकअप फ़ील्ड के लिए मान चुनने में सक्षम करने के लिए DGBrid कॉलम की PickList संपत्ति का उपयोग कैसे किया जाए।

डीबीग्रिड कॉलम संपत्ति पर एक त्वरित जानकारी

DBGrid नियंत्रण में एक कॉलम गुण होता है - एक ग्रिड नियंत्रण में सभी स्तंभों का प्रतिनिधित्व करने वाले टीसीओल्यूम ऑब्जेक्ट्स का एक संग्रह। स्तंभों को डिज़ाइन समय पर कॉलम संपादक के माध्यम से या क्रमिक रूप से रनटाइम पर सेट किया जा सकता है। आप आमतौर पर जोड़ देंगे कॉलम DBGird जब आप परिभाषित करना चाहते हैं कि कोई स्तंभ कैसे प्रकट होता है, तो कॉलम में डेटा कैसे प्रदर्शित होता है और रनटाइम पर TDBGridColumns के गुणों, घटनाओं और विधियों तक पहुँचने के लिए। एक अनुकूलित ग्रिड आपको एक ही के विभिन्न विचार प्रस्तुत करने के लिए कई कॉलम कॉन्फ़िगर करने में सक्षम बनाता है डेटासेट (अलग-अलग कॉलम ऑर्डर, अलग-अलग फील्ड ऑप्शन और अलग-अलग कॉलम कलर और फोंट, के लिए उदाहरण)।

instagram viewer

अब, ग्रिड में प्रत्येक कॉलम ग्रिड में प्रदर्शित डेटासेट से एक क्षेत्र के लिए "जुड़ा हुआ" है। क्या अधिक है, प्रत्येक कॉलम में एक PickList संपत्ति है। PickList गुण उन मानों को सूचीबद्ध करता है जो उपयोगकर्ता स्तंभ के लिंक किए गए फ़ील्ड मान के लिए चुन सकता है।

पिकलिस्ट भरना

आप यहाँ क्या सीखेंगे कि उस स्ट्रिंग सूची को किसी अन्य डेटासेट से मूल्यों के साथ कैसे भरें।
याद है, कि हम लेख तालिका को संपादित कर रहे हैं और यह कि एक विषय क्षेत्र केवल विषय तालिका से मूल्यों को स्वीकार कर सकता है: पिकलिस्ट के लिए आदर्श स्थिति!

यहां बताया गया है कि पिकलिस्ट संपत्ति कैसे सेट करें। सबसे पहले, हम प्रपत्र के OnCreate ईवेंट हैंडलर में SetupGridPickList प्रक्रिया में एक कॉल जोड़ते हैं।

प्रक्रिया TForm1.FormCreate (प्रेषक: Tobject);
शुरू
SetupGridPickList ('विषय', 'विषय से नाम का चयन करें');
समाप्त;

SetupGridPickList प्रक्रिया बनाने का सबसे आसान तरीका फॉर्म घोषणा के निजी भाग में जाना है, वहाँ घोषणा को जोड़ें और CTRL + SHIFT + C कुंजी संयोजन को हिट करें - डेल्फी का कोड पूरा हो जाएगा आराम:

...
प्रकार
TForm1 = वर्ग (TForm)
...
privateprocedure SetupGridPickList (
स्थिरांक क्षेत्र का नाम: तार;
स्थिरांक एसक्यूएल: तार);
जनता
...

नोट: SetupGridPickList प्रक्रिया दो पैरामीटर लेती है। पहला पैरामीटर, फील्डनेम, उस फ़ील्ड का नाम है जिसे हम लुकअप फ़ील्ड की तरह कार्य करना चाहते हैं; दूसरा पैरामीटर, एसक्यूएल, एसक्यूएल अभिव्यक्ति है जिसका उपयोग हम संभावित मूल्यों के साथ पिकलिस्ट को आबाद करने के लिए करते हैं - सामान्य तौर पर, एसक्यूएल अभिव्यक्ति को केवल एक फ़ील्ड के साथ डेटासेट वापस करना चाहिए।

यहां बताया गया है कि SetupGridPickList कैसा दिखता है:

प्रक्रिया TForm1.SetupGridPickList (स्थिरांक फ़ील्डनाम, वर्ग: तार);
वर
slPickList: TStringList;
क्वेरी: TADOQuery;
i: पूर्णांक;
शुरू
slPickList: = TStringList। सृजन करना;
क्वेरी: = TADOQuery। बनाएँ (स्वयं);
प्रयत्न
क्वेरी। कनेक्शन: = ADOConnection1;
क्वेरी। SQL.Text: = sql;
क्वेरी। खुला हुआ;
// स्ट्रिंग सूची भरेंजबकिनहीं क्वेरी। EOF dobegin
slPickList। जोड़ें (क्वेरी। फील्ड्स [0] .AsString);
क्वेरी। आगे;
समाप्त; //while
// सूची को सही कॉलम रखेंके लिये मैं: = 0 सेवा DBGrid1.Columns। गणना -1 कर
अगर DBGrid1. कॉलेमेंट्स [i] .FieldName = FieldName thenbegin
DBGrid1.Columns [i] .PickList: = slPickList;
टूटना;
समाप्त;
आखिरकार
slPickList। नि: शुल्क;
क्वेरी। नि: शुल्क;
समाप्त;
समाप्त; (* SetupGridPickList *)

बस। अब, जब आप विषय कॉलम पर क्लिक करते हैं (संपादन मोड में प्रवेश करने के लिए)।

नोट 1: डिफ़ॉल्ट रूप से, ड्रॉप-डाउन सूची 7 मान प्रदर्शित करती है। आप DropDownRows गुण सेट करके इस सूची की लंबाई बदल सकते हैं।

नोट 2: डेटाबेस तालिका से नहीं आने वाले मूल्यों की सूची से PickList को भरने से आपको कुछ भी नहीं रोकता है। यदि, उदाहरण के लिए, आपके पास एक ऐसा क्षेत्र है जो केवल कार्यदिवसों के नाम ('सोमवार',..., 'रविवार') को स्वीकार करता है, तो आप "हार्ड-कोडेड" पिकलिस्ट का निर्माण कर सकते हैं।

"उह, मुझे 4 बार पिकलिस्ट पर क्लिक करने की आवश्यकता है ..."

ध्यान दें कि जब आप ड्रॉप-डाउन सूची प्रदर्शित करने वाले क्षेत्र को संपादित करना चाहते हैं, तो आपको वास्तव में किसी सूची से मूल्य चुनने के लिए सेल को 4 बार क्लिक करना होगा। अगला कोड स्निपेट, DBGrid के OnCellClick ईवेंट हैंडलर में जोड़ा गया, Alt + DownArrow द्वारा F2 कुंजी के लिए एक हिट की नकल करता है।

प्रक्रिया TForm1.DBGrid1CellClick (स्तंभ: TColumn);
शुरू// ड्रॉप-डाउन पिक सूची बनाने से तेज़ी दिखाई देती हैअगर कॉलम। चुनी जाने वाली सूची। गिनती> 0 thenbegin
keybd_event (VK_F2,0,0,0);
keybd_event (VK_F2,0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_MENU, 0,0,0);
keybd_event (VK_DOWN, 0,0,0);
keybd_event (VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_MENU, 0, KEYEVENTF_KEYUP, 0);
समाप्त;
समाप्त;