डेल्फी में फ़ंक्शंस और प्रक्रिया का उपयोग कैसे करें

क्या आपने कभी अपने आप को कुछ समान कार्य करने के लिए बार-बार एक ही कोड लिखते हुए पाया है घटना संचालकों? हाँ! यह आपके लिए एक कार्यक्रम के भीतर कार्यक्रमों के बारे में जानने का समय है। आइए उन मिनी-प्रोग्राम सबरूटीन्स को कॉल करें।

सबरूटीन्स का परिचय दें

सबरूटीन किसी का एक महत्वपूर्ण हिस्सा हैं प्रोग्रामिंग भाषा, तथाडेल्फी कोई अपवाद नहीं है। डेल्फी में, आमतौर पर दो प्रकार के सबरूटीन होते हैं: एक फ़ंक्शन और एक प्रक्रिया। एक फ़ंक्शन और एक प्रक्रिया के बीच सामान्य अंतर यह है कि एक फ़ंक्शन एक मान लौटा सकता है, और एक प्रक्रिया आम तौर पर ऐसा नहीं करेगी। एक फ़ंक्शन को आम तौर पर एक अभिव्यक्ति के एक भाग के रूप में कहा जाता है।

निम्नलिखित उदाहरणों पर एक नज़र डालें:

प्रक्रिया नमस्ते कहो(स्थिरांक sWhat:तार); शुरू
शो मेसेज ('हैलो' + sWhat); समाप्त; समारोह साल पुराना(स्थिरांक जन्म: पूर्णांक): पूर्णांक; वर
वर्ष, महीना, दिन: शब्द; शुरू
डिकोडडेट (तिथि, वर्ष, महीना, दिन); परिणाम: = वर्ष - जन्म वर्ष; समाप्त; 

एक बार सबरूटीन परिभाषित हो जाने के बाद, हम उन्हें एक या अधिक बार कॉल कर सकते हैं:

प्रक्रिया TForm1.Button1 क्लिक करें (प्रेषक: TObject); 
instagram viewer
शुरू SayHello ('डेल्फी उपयोगकर्ता'); समाप्त; प्रक्रिया TForm1.Button2Click (प्रेषक: TObject); शुरू सायेलो ('ज़ारको गजिक'); ShowMessage ('आप हैं' + IntToStr (YearsOld (1973)) + 'वर्ष' ')); समाप्त;

कार्य और प्रक्रियाएं

जैसा कि हम देख सकते हैं, दोनों फ़ंक्शन और प्रक्रियाएं मिनी-प्रोग्राम की तरह काम करती हैं। विशेष रूप से, उनके पास अपने प्रकार, स्थिरांक और उनके अंदर परिवर्तनशील घोषणाएं हो सकती हैं।

(विविध) SomeCalc फ़ंक्शन पर करीब से नज़र डालें:

समारोह SomeCalc। (स्थिरांक sStr: तार; स्थिरांक iYear, iMonth: पूर्णांक; वर iDay: पूर्णांक): बूलियन; शुरू...समाप्त; 

हर प्रक्रिया या कार्य एक से शुरू होता है हैडर वह प्रक्रिया या कार्य को पहचानता है और सूचीबद्ध करता है मापदंडों दिनचर्या का उपयोग करता है यदि कोई हो। पैरामीटर कोष्ठक में सूचीबद्ध हैं। प्रत्येक पैरामीटर में एक पहचान नाम होता है और आमतौर पर एक प्रकार होता है। एक अर्धविराम पैरामीटर सूची में मापदंडों को एक दूसरे से अलग करता है।

sStr, iYear और iMonth कहलाते हैं निरंतर मापदंडों. लगातार मापदंडों को फ़ंक्शन (या प्रक्रिया) द्वारा नहीं बदला जा सकता है। IDay को एक के रूप में पारित किया जाता है var पैरामीटर, और हम सबरूटीन के अंदर, उसमें बदलाव कर सकते हैं।

कार्य, क्योंकि वे मान लौटाते हैं, उनके पास होना चाहिए वापसी प्रकार शीर्ष लेख के अंत में घोषित किया गया। किसी फ़ंक्शन का रिटर्न मान उसके नाम को (अंतिम) असाइनमेंट द्वारा दिया जाता है। चूंकि प्रत्येक फ़ंक्शन का अनुमानित रूप से एक ही प्रकार का स्थानीय चर होता है, क्योंकि फ़ंक्शन मान वापस करते हैं, परिणाम को असाइन करने का फ़ंक्शन के नाम पर असाइन करने के समान प्रभाव होता है।

पोजिशनिंग और कॉलिंग सबरूटीन्स

Subroutines को हमेशा यूनिट के कार्यान्वयन अनुभाग में रखा जाता है। इस तरह के सबरूटीन्स को एक ईवेंट हैंडलर या सबरूटीन द्वारा उसी यूनिट में बुलाया (उपयोग किया जा सकता है) जिसे इसके बाद परिभाषित किया गया है।

नोट: एक इकाई का उपयोग खंड आपको बताता है कि इसे कौन सी इकाई कह सकते हैं। यदि हम चाहते हैं कि यूनिट 1 में एक विशिष्ट सबरूटीन को इवेंट हैंडलर या किसी अन्य यूनिट में सबरूटीन्स (यूसी 2 कहें) द्वारा प्रयोग करने योग्य बनाया जाए, तो हमें यह करना होगा:

  • Unit2 को Unit2 के उपयोग खंड में जोड़ें
  • यूनिट 1 के इंटरफ़ेस सेक्शन में सबरूटीन के हेडर की एक प्रति रखें।

इसका मतलब यह है कि उप-रेखाएँ जिनके हेडर इंटरफ़ेस अनुभाग में दिए गए हैं दायरे में वैश्विक.

जब हम किसी फ़ंक्शन (या प्रक्रिया) को उसकी अपनी इकाई के अंदर कहते हैं, तो हम उसके नाम का उपयोग करते हैं मापदंडों की आवश्यकता है। दूसरी ओर, यदि हम एक वैश्विक सबरूटीन (किसी अन्य इकाई में परिभाषित, जैसे MyUnit) कहते हैं, तो हम एक अवधि के बाद इकाई के नाम का उपयोग करते हैं।

... // SayHello प्रक्रिया इस इकाई के अंदर परिभाषित की गई है
SayHello ('डेल्फी उपयोगकर्ता'); // वर्षकार्यक्रम को MyUnit इकाई के अंदर परिभाषित किया गया है
डमी: = MyUnit। ईयरऑल्ड (1973);... 

नोट: कार्यों या प्रक्रियाओं के अंदर अपने स्वयं के सबरूटीन हो सकते हैं। एक एम्बेडेड सबरूटीन कंटेनर सबरूटिन के लिए स्थानीय है और कार्यक्रम के अन्य भागों द्वारा उपयोग नहीं किया जा सकता है। कुछ इस तरह:

प्रक्रिया TForm1.Button1 क्लिक करें (प्रेषक: TObject); समारोह छोटा है(स्थिरांक sStr:तार): बूलियन; शुरू// IsSmall रिटर्न सही है अगर sStr लोअरकेस में है, अन्यथा गलत
परिणाम: = लोअरकेस (sStr) = sStr; समाप्त; शुरू// IsSmall का उपयोग केवल Button1 OnClick घटना के अंदर किया जा सकता हैअगर IsSmall (Edit1.Text) फिर
ShowMessage ('Edit1.Text में सभी छोटे कैप)
अन्य
शो मेसेज ('Edit1.Text में सभी छोटे कैप नहीं'); समाप्त;
instagram story viewer