सेट ठीक हैं, सरणियों महान हैं।
मान लीजिए कि हम अपने प्रोग्रामिंग समुदाय में 50 सदस्यों के लिए तीन एक आयामी सरणियाँ बनाना चाहते हैं। पहला सरणी नामों के लिए है, दूसरा ई-मेल के लिए, और तीसरा अपलोड करने के लिए संख्या (घटक या अनुप्रयोग) हमारे समुदाय के लिए है।
प्रत्येक सरणी (सूची) में सभी तीन सूचियों को समानांतर बनाए रखने के लिए मिलान अनुक्रमणिका और बहुत सारे कोड होंगे। बेशक, हम एक तीन आयामी सरणी के साथ कोशिश कर सकते हैं, लेकिन इसके प्रकार के बारे में क्या? हमें नाम और ई-मेल के लिए स्ट्रिंग की आवश्यकता है, लेकिन अपलोड की संख्या के लिए एक पूर्णांक।
ऐसी डेटा संरचना के साथ काम करने का तरीका डेल्फी का उपयोग करना है रिकॉर्ड संरचना.
TMember = रिकॉर्ड...
उदाहरण के लिए, निम्नलिखित घोषणा टीएमम्बर नामक एक रिकॉर्ड प्रकार बनाती है, जिसे हम अपने मामले में उपयोग कर सकते हैं।
अनिवार्य रूप से, ए रिकॉर्ड डेटा संरचना डेल्फी के अंतर्निहित प्रकारों में से किसी को भी मिला सकती है आपके द्वारा बनाए गए किसी भी प्रकार सहित। रिकॉर्ड प्रकार विभिन्न प्रकार की वस्तुओं के निश्चित संग्रह को परिभाषित करते हैं। प्रत्येक आइटम, या खेत, एक चर की तरह है, एक नाम और एक प्रकार से मिलकर।
TMember प्रकार में तीन फ़ील्ड होते हैं: नाम का एक स्ट्रिंग मान (सदस्य का नाम रखने के लिए), एक स्ट्रिंग प्रकार का मान eMail (एक ई-मेल के लिए), और एक पूर्णांक (कार्डिनल) पोस्ट कहा जाता है (हमारे लिए सबमिशन की संख्या रखने के लिए) समुदाय)।
एक बार जब हम रिकॉर्ड प्रकार सेट कर लेते हैं, तो हम एक प्रकार के टीएमम्बर के रूप में परिवर्तनशील घोषित कर सकते हैं। TMember अब किसी भी प्रकार के रूप में चर के लिए अच्छा चर प्रकार है डेल्फी 'अंतर्निहित अंतर्निहित प्रकार जैसे स्ट्रिंग या पूर्णांक। नोट: TMember प्रकार की घोषणा, नाम, ईमेल और पोस्ट फ़ील्ड के लिए कोई मेमोरी आवंटित नहीं करता है;
वास्तव में टीएमम्बर रिकॉर्ड का एक उदाहरण बनाने के लिए हमें टीएमम्बर प्रकार के एक वैरिएबल को घोषित करना होगा, जैसा कि निम्नलिखित कोड में है:
अब, जब हमारे पास एक रिकॉर्ड होता है, तो हम डेल्फीगाइड के क्षेत्रों को अलग करने के लिए एक डॉट का उपयोग करते हैं।
नोट: कोड के उपरोक्त टुकड़े के उपयोग के साथ फिर से लिखा जा सकता है साथ मेंकीवर्ड.
अब हम डेल्फीगाइड के खेतों के मूल्यों को एम्बर में कॉपी कर सकते हैं।
रिकॉर्ड स्कोप और दृश्यता
किसी प्रपत्र (कार्यान्वयन अनुभाग), फ़ंक्शन, या प्रक्रिया की घोषणा के भीतर घोषित रिकॉर्ड प्रकार में उस खंड तक सीमित गुंजाइश होती है जिसमें यह घोषित किया जाता है। यदि रिकॉर्ड एक इकाई के इंटरफ़ेस सेक्शन में घोषित किया जाता है, तो इसमें एक गुंजाइश होती है जिसमें कोई अन्य यूनिट या प्रोग्राम शामिल होता है जो उस यूनिट का उपयोग करता है जहां घोषणा होती है।
अभिलेखों की एक सरणी
चूंकि TMember किसी अन्य ऑब्जेक्ट पास्कल प्रकार की तरह काम करता है, इसलिए हम रिकॉर्ड चर की एक सरणी की घोषणा कर सकते हैं:
नोट: यहां बताया गया है कि कैसे डेल्फी में रिकॉर्ड की एक निरंतर सरणी घोषित करें और आरंभ करें.
रिकॉर्ड फ़ील्ड के रूप में रिकॉर्ड
चूंकि एक रिकॉर्ड प्रकार किसी अन्य डेल्फी प्रकार के रूप में वैध है, इसलिए हमारे पास रिकॉर्ड का एक क्षेत्र एक रिकॉर्ड ही हो सकता है। उदाहरण के लिए, हम सदस्य की जानकारी के साथ सदस्य क्या प्रस्तुत कर रहे हैं, इस पर नज़र रखने के लिए ExpandedMember बना सकते हैं।
एकल रिकॉर्ड के लिए आवश्यक सभी जानकारी को भरना अब किसी तरह कठिन है। TExpandedMember के क्षेत्रों तक पहुँचने के लिए और अधिक अवधि (डॉट्स) की आवश्यकता होती है।
"अज्ञात" फ़ील्ड्स के साथ रिकॉर्ड करें
एक रिकॉर्ड प्रकार में एक भिन्न भाग हो सकता है (वैरिएंट प्रकार चर के साथ भ्रमित नहीं होना)। वेरिएंट रिकॉर्ड का उपयोग किया जाता है, उदाहरण के लिए, जब हम एक रिकॉर्ड प्रकार बनाना चाहते हैं जिसमें फ़ील्ड हैं विभिन्न प्रकार के डेटा, लेकिन हम जानते हैं कि हमें एक ही रिकॉर्ड में सभी क्षेत्रों का उपयोग करने की आवश्यकता नहीं होगी उदाहरण। रिकॉर्ड्स में वेरिएंट भागों के बारे में अधिक जानने के लिए डेल्फी की मदद फाइलों पर एक नज़र डालें। एक प्रकार का रिकॉर्ड प्रकार का उपयोग सुरक्षित नहीं है और यह अनुशंसित प्रोग्रामिंग अभ्यास नहीं है, विशेष रूप से शुरुआती लोगों के लिए।
हालांकि, वैरिएंट रिकॉर्ड काफी उपयोगी हो सकते हैं, यदि आप कभी भी उनका उपयोग करने की स्थिति में खुद को पाते हैं।