डेल्फी कैसे संसाधन फ़ाइलों का उपयोग करता है

बिटमैप्स से लेकर आइकन तक, कर्सर से लेकर स्ट्रिंग टेबल तक, हर विंडोज प्रोग्राम संसाधनों का उपयोग करता है। साधन प्रोग्राम के वे तत्व हैं जो प्रोग्राम का समर्थन करते हैं लेकिन निष्पादन योग्य कोड नहीं हैं। इस लेख में, हम संसाधनों से बिटमैप, आइकन और कर्सर के उपयोग के कुछ उदाहरणों के माध्यम से चलेंगे।

संसाधनों का स्थान

.Exe फ़ाइल में संसाधन रखना दो मुख्य हैं फायदे:

  • संसाधनों को अधिक तेज़ी से एक्सेस किया जा सकता है क्योंकि निष्पादन योग्य फ़ाइल में एक संसाधन का पता लगाने में कम समय लगता है, जितना कि इसे एक डिस्क फ़ाइल से लोड करने के लिए।
  • प्रोग्राम फ़ाइल और संसाधनों को बहुत सारी सहायक फ़ाइलों की आवश्यकता के बिना एक यूनिट (.exe फ़ाइल) में समाहित किया जा सकता है।

द इमेज एडिटर

सबसे पहले, हमें एक संसाधन फ़ाइल बनाने की आवश्यकता है। संसाधन फ़ाइलों के लिए डिफ़ॉल्ट एक्सटेंशन है।आरईएस. डेल्फी की छवि संपादक के साथ संसाधन फाइलें बनाई जा सकती हैं।

आप अपनी इच्छित संसाधन फ़ाइल को तब तक नाम दे सकते हैं, जब तक कि उसका विस्तार ".RES" हो और बिना एक्सटेंशन का फ़ाइल नाम किसी भी इकाई या प्रोजेक्ट फ़ाइल नाम के समान न हो। यह महत्वपूर्ण है, क्योंकि, डिफ़ॉल्ट रूप से, प्रत्येक

instagram viewer
डेल्फी प्रोजेक्ट जो अनुप्रयोग में संकलित करता है, उसमें प्रोजेक्ट फ़ाइल के समान नाम के साथ एक संसाधन फ़ाइल होती है, लेकिन एक्सटेंशन ".RES" के साथ। अपनी परियोजना फ़ाइल के समान फ़ाइल को उसी निर्देशिका में सहेजना सबसे अच्छा है।

अनुप्रयोगों में संसाधन शामिल हैं

अपनी स्वयं की संसाधन फ़ाइल तक पहुँचने के लिए, हमें अपने आवेदन के साथ हमारी संसाधन फ़ाइल को जोड़ने के लिए डेल्फी को बताना होगा। यह स्रोत कोड में एक संकलक निर्देश जोड़कर पूरा किया जाता है। इस निर्देश को प्रपत्र निर्देश का तुरंत पालन करने की आवश्यकता है, जैसे निम्नलिखित:

{$ R * .DFM} 
{$ R DPABOUT.RES}

गलती से {$ R * .DFM} भाग को मिटा न दें, क्योंकि यह कोड की लाइन है जो डेल्फी को फॉर्म के दृश्य भाग में लिंक करने के लिए कहती है। जब आप स्पीड बटन, छवि घटकों या बटन घटकों के लिए बिटमैप चुनते हैं, तो डेल्फी में बिटमैप फ़ाइल शामिल होती है जिसे आपने फॉर्म के संसाधन के हिस्से के रूप में चुना था। डेल्फी आपके उपयोगकर्ता इंटरफ़ेस तत्वों को .DFM फ़ाइल में अलग करती है।

वास्तव में संसाधन का उपयोग करने के लिए, आपको कुछ बनाना होगा विंडोज एपीआई कहता है। RES फ़ंक्शंस में संग्रहीत बिटमैप, कर्सर और आइकन API फ़ंक्शन का उपयोग करके पुनर्प्राप्त किए जा सकते हैं LoadBitmap, LoadCursor, तथा LoadIcon क्रमशः।

संसाधन में चित्र

पहला उदाहरण दिखाता है कि संसाधन के रूप में संग्रहीत बिटमैप को कैसे लोड किया जाए और इसे एक में प्रदर्शित किया जाए TImage घटक।

प्रक्रिया TfrMain.btnCanvasPic (प्रेषक: TObject);
वर bBitmap: TBitmap;
शुरू
bBitmap: = TBitmap। सृजन करना;
प्रयत्न
bBitmap। हैंडल: = लोडबिटमैप (hInstance, 'ATHENA');
Image1.Width: = bBitmap चौड़ाई;
Image1। ऊंचाई: = bBitmap। ऊंचाई;
Image1.Canvas। ड्रा (0,0, बीटमैप);
आखिरकार
bBitmap। नि: शुल्क;
समाप्त;
समाप्त;

नोट: यदि बिटमैप को लोड किया जाना है तो संसाधन फ़ाइल में नहीं है, प्रोग्राम अभी भी चलेगा, यह बिटमैप प्रदर्शित नहीं करेगा। यह देखने के लिए परीक्षण करके इस स्थिति से बचा जा सकता है कि क्या bBitmap। हैंडल कॉल करने के बाद शून्य है LoadBitmap () और उचित कदम उठा रहा है। कोशिश / अंत में पिछले कोड में भाग इस समस्या को हल नहीं करता है, यह सिर्फ यह सुनिश्चित करने के लिए है कि bBitmap नष्ट हो गया है और इसकी संबंधित मेमोरी को मुक्त कर दिया गया है।

एक अन्य तरीका जिसे हम संसाधन से बिटमैप प्रदर्शित करने के लिए उपयोग कर सकते हैं, वह इस प्रकार है:

प्रक्रिया TfrMain.btnLoadPicClick (प्रेषक: TObject);
शुरू
Image1.Picture। बिटमैप।
LoadFromResourceName (hInstance, 'EARTH');
समाप्त;

संसाधन में कर्सर

स्क्रीन। कर्सर [] है एक सरणी डेल्फी द्वारा आपूर्ति की गई श्रापियों की। संसाधन फ़ाइलों का उपयोग करके, हम कस्टम कर्सर को कर्सर संपत्ति में जोड़ सकते हैं। जब तक हम किसी भी चूक को बदलना नहीं चाहते हैं, तब तक सबसे अच्छी रणनीति 1 से शुरू होने वाले कर्सर नंबरों का उपयोग करना है।

प्रक्रिया TfrMain.btnUseCursorClick (प्रेषक: TObject);
स्थिरांक NewCursor = 1;
शुरू
स्क्रीन। कर्सर [NewCursor]: =
लोडकैसर (hInstance, 'CURHAND');
Image1.Cursor: = NewCursor;
समाप्त;

संसाधन में प्रतीक

अगर हम डेल्फी को देखें परियोजना विकल्प-आवेदन सेटिंग्स, हम पा सकते हैं कि डेल्फी एक परियोजना के लिए डिफ़ॉल्ट आइकन की आपूर्ति करता है। यह आइकन विंडोज एक्सप्लोरर में एप्लिकेशन का प्रतिनिधित्व करता है और जब एप्लिकेशन को कम से कम किया जाता है। हम इसे 'लोड आइकन' बटन पर क्लिक करके आसानी से बदल सकते हैं।

यदि हम चाहते हैं, उदाहरण के लिए, प्रोग्राम के आइकन को चेतन करने के लिए जब प्रोग्राम को छोटा किया जाता है, तो निम्नलिखित कोड काम करेगा।

एनीमेशन के लिए, हमें एक एनीमेशन की आवश्यकता है TTimer एक फार्म पर घटक। कोड दो फ़ाइल को संसाधन फ़ाइल से एक सरणी में लोड करता है Ticon वस्तुओं; इस सरणी को मुख्य भाग के सार्वजनिक भाग में घोषित किया जाना चाहिए। हमें भी जरूरत होगी NrIco, यह एक पूर्णांक प्रकार है परिवर्तनशीलमें घोषित किया गया जनता अंश। NrIco दिखाने के लिए अगले आइकन का ट्रैक रखने के लिए उपयोग किया जाता है।

जनता
nrIco: इंटेगर;
न्यूनतम: सरणी [0..1] TIcon की;
...
प्रक्रिया TfrMain। फॉर्मक्रिएट (प्रेषक: TObject);
शुरू
MinIcon [0]: = Ticon। सृजन करना;
MinIcon [1]: = Ticon। सृजन करना;
MinIcon [0]। हैंडल: = LoadIcon (hInstance, 'ICOOK');
MinIcon [1]। हैंडल: = LoadIcon (hInstance, 'ICOFOLD');
NrIco: = 0;
Timer1.Interval: = 200;
समाप्त;
...
प्रक्रिया TfrMain। टाइमर 1Timer (प्रेषक: Tobject);
beginif इस्कॉन (अनुप्रयोग) हैंडल) फिरशुरू
NrIco: = (NrIco +1) आधुनिक 2;
आवेदन। चिह्न: = MinIcon [NrIco];
समाप्त;
समाप्त;
...
प्रक्रिया TfrMain। FormDestroy (प्रेषक: Tobject);
शुरू
MinIcon [0] नि: शुल्क;
MinIcon [1] नि: शुल्क;
समाप्त;

में Timer1.OnTimer आयोजन प्रबंधकर्ता, IsMinimized फ़ंक्शन का उपयोग यह देखने के लिए किया जाता है कि हमें अपने मुख्य आइकन को चेतन करने की आवश्यकता है या नहीं। इसे पूरा करने का एक बेहतर तरीका यह होगा कि आप अधिकतम / कम से कम बटन पकड़ें और कार्य करें।

अंतिम शब्द

हम संसाधन फ़ाइलों में कुछ भी (अच्छी तरह से, सब कुछ नहीं) रख सकते हैं। इस लेख ने आपको दिखाया है कि अपने डेल्फी एप्लिकेशन में बिटमैप, कर्सर या आइकन का उपयोग करने / प्रदर्शित करने के लिए संसाधनों का उपयोग कैसे करें।

नोट: जब हम एक डेल्फी प्रोजेक्ट को डिस्क पर सहेजते हैं, तो डेल्फी स्वचालित रूप से एक बनाता है। ऐसी फ़ाइल जिसका नाम प्रोजेक्ट के समान है (यदि और कुछ नहीं, तो प्रोजेक्ट का मुख्य आइकन अंदर है)। हालाँकि हम इस संसाधन फ़ाइल को बदल सकते हैं, यह उचित नहीं है।

instagram story viewer