डेल्फी एक्ज़ीक्यूटेबल्स में संसाधन फ़ाइलें कैसे जोड़ें

गेम्स और अन्य प्रकार के एप्लिकेशन जो मल्टीमीडिया फ़ाइलों जैसे ध्वनियों और एनिमेशन का उपयोग करते हैं, उन्हें होना चाहिए एप्लिकेशन के साथ अतिरिक्त मल्टीमीडिया फ़ाइलों को वितरित करें या फ़ाइलों को भीतर एम्बेड करें निष्पादन योग्य।

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

यह लेख आपको दिखाएगा डेल्फी निष्पादन योग्य में ध्वनि फ़ाइलों, वीडियो क्लिप, एनिमेशन और अधिक आम तौर पर किसी भी तरह की बाइनरी फ़ाइलों को एम्बेड (और उपयोग) कैसे करें. सबसे सामान्य उद्देश्य के लिए, आप देखेंगे कि कैसे रखा जाए एमपी 3 फ़ाइल अंदर एक डेल्फी प्रोग्राम फ़ाइल।

संसाधन फ़ाइलें (.RES)

में "रिसोर्स फाइल्स मेड ईज़ी"आलेख आपको बिटमैप्स, आइकन, और के उपयोग के कई उदाहरणों के साथ प्रस्तुत किया गया था कर्सर संसाधनों से। जैसा कि उस लेख में कहा गया है कि हम इमेज एडिटर का उपयोग उन संसाधनों को बनाने और संपादित करने के लिए कर सकते हैं जिनमें इस प्रकार की फाइलें होती हैं। अब, जब हम एक डेल्फी निष्पादन योग्य के अंदर विभिन्न प्रकार की (बाइनरी) फ़ाइलों को संग्रहीत करने में रुचि रखते हैं, तो हमें स्क्रिप्ट स्क्रिप्ट फ़ाइलों (.rc) से निपटना होगा।

instagram viewer
बोरलैंड संसाधन संकलक उपकरण और अन्य।

आपके निष्पादन योग्य में कई बाइनरी फाइलें शामिल हैं जिनमें 5 चरण शामिल हैं:

  1. बनाएँ और / या एक exe में रखना चाहते हैं सभी फ़ाइलों को इकट्ठा।
  2. एक संसाधन स्क्रिप्ट फ़ाइल (.rc) बनाएँ जो आपके अनुप्रयोग द्वारा उपयोग किए गए उन संसाधनों का वर्णन करता है,
  3. संसाधन फ़ाइल (.res) बनाने के लिए संसाधन स्क्रिप्ट फ़ाइल (.rc) फ़ाइल संकलित करें,
  4. संकलित संसाधन फ़ाइल को एप्लिकेशन की निष्पादन योग्य फ़ाइल में लिंक करें,
  5. व्यक्तिगत संसाधन तत्व का उपयोग करें।

पहला चरण सरल होना चाहिए, बस यह तय करें कि आप अपने निष्पादन योग्य में किस प्रकार की फाइलें संग्रहीत करना चाहते हैं। उदाहरण के लिए, हम दो .wav गाने, एक .ani एनिमेशन और एक .mp3 गीत संग्रहीत करेंगे।

इससे पहले कि हम आगे बढ़ें, यहाँ संसाधनों के साथ काम करते समय सीमाओं से संबंधित कुछ महत्वपूर्ण कथन दिए गए हैं:

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

आइए अब देखें कि संसाधनों का वर्णन करने वाली फ़ाइल कैसे बनाई जाए।

संसाधन स्क्रिप्ट फ़ाइल बनाना (.RC)

एक संसाधन स्क्रिप्ट फ़ाइल एक्सटेंशन के साथ सिर्फ एक साधारण टेक्स्ट फ़ाइल होती है। जो संसाधनों को सूचीबद्ध करती है। स्क्रिप्ट फ़ाइल इस प्रारूप में है:

ResName1 ResTYPE1 ResFileName1
ResName2 ResTYPE2 ResFileName2
...
ResNameX ResTYPEX ResFileNameX
...

RexName किसी विशिष्ट नाम या पूर्णांक मान (ID) को निर्दिष्ट करता है जो संसाधन की पहचान करता है। ResType संसाधन का प्रकार और वर्णन करता है ResFileName व्यक्तिगत संसाधन फ़ाइल का पूर्ण पथ और फ़ाइल नाम है।

एक नई संसाधन स्क्रिप्ट फ़ाइल बनाने के लिए, बस निम्नलिखित करें:

  1. अपनी परियोजनाओं निर्देशिका में एक नई पाठ फ़ाइल बनाएँ।
  2. इसे AboutDelphi.rc पर नाम बदलें।

AboutDelphi.rc फ़ाइल में, निम्न पंक्तियाँ हैं:

घड़ी "सी: \ mysounds \ परियोजनाओं \ घड़ी। Wav"
MailBeep ने "c: \ windows \ media \ newmail.wav"
एवी कूल कूल.वी
इंट्रो RCDATA introsong.mp3

स्क्रिप्ट फ़ाइल केवल संसाधनों को परिभाषित करती है। दिए गए प्रारूप के बारे में AboutDelphi.rc स्क्रिप्ट दो .wav फाइलें, एक .avi एनीमेशन, और .mp3 गीत सूचीबद्ध करता है। एक .rc फ़ाइल में सभी स्टेटमेंट किसी दिए गए संसाधन के लिए एक पहचान नाम, प्रकार और फ़ाइल नाम को जोड़ते हैं। लगभग एक दर्जन पूर्वनिर्धारित संसाधन प्रकार हैं। इनमें आइकन, बिटमैप, कर्सर्स, एनिमेशन, गाने आदि शामिल हैं। RCDATA जेनेरिक डेटा संसाधनों को परिभाषित करता है। RCDATA आपको किसी एप्लिकेशन के लिए एक कच्चा डेटा संसाधन शामिल करने देता है। कच्चे डेटा संसाधन बाइनरी डेटा को सीधे निष्पादन योग्य फ़ाइल में शामिल करने की अनुमति देते हैं। उदाहरण के लिए, RCDATA स्टेटमेंट, एप्लिकेशन के बाइनरी संसाधन इंट्रो का नाम देता है और फ़ाइल introsong.mp3 को निर्दिष्ट करता है, जिसमें उस एमपी 3 फ़ाइल के लिए गीत होता है।

नोट: सुनिश्चित करें कि आपके पास आपके .rc फ़ाइल में आपके द्वारा सूचीबद्ध सभी संसाधन उपलब्ध हैं। यदि फ़ाइलें आपकी परियोजनाओं निर्देशिका के अंदर हैं, तो आपको पूर्ण फ़ाइल नाम शामिल करने की आवश्यकता नहीं है। मेरी .rc फ़ाइल में .wav गाने डिस्क पर * कहीं * स्थित हैं और एनीमेशन और एमपी 3 गीत दोनों परियोजना की निर्देशिका में स्थित हैं।

संसाधन फ़ाइल बनाना .RES)

संसाधन स्क्रिप्ट फ़ाइल में परिभाषित संसाधनों का उपयोग करने के लिए, हमें इसे बोरलैंड के संसाधन संकलक के साथ एक .res फ़ाइल में संकलित करना होगा। संसाधन कंपाइलर संसाधन स्क्रिप्ट फ़ाइल की सामग्री के आधार पर एक नई फ़ाइल बनाता है। इस फ़ाइल में आमतौर पर .res एक्सटेंशन होता है। डेल्फी लिंकर बाद में .res फ़ाइल को एक संसाधन ऑब्जेक्ट फ़ाइल में सुधार करेगा और फिर इसे किसी एप्लिकेशन की निष्पादन योग्य फ़ाइल से लिंक करेगा।

बोरलैंड का संसाधन संकलक कमांड लाइन उपकरण डेल्फी बिन निर्देशिका में स्थित है। नाम है BRCC32.exe। बस कमांड प्रॉम्प्ट पर जाएं और brcc32 टाइप करें फिर एंटर दबाएं। चूंकि डेल्फी \ बिन निर्देशिका आपके पथ में है इसलिए Brcc32 संकलक को आमंत्रित किया गया है और उपयोग सहायता प्रदर्शित करता है (क्योंकि इसे कोई पैरामीटर नहीं कहा गया था)।

एक .res फ़ाइल के बारे में AboutDelphi.rc फ़ाइल को संकलित करने के लिए कमांड प्रॉम्प्ट पर (प्रोजेक्ट निर्देशिका में) इस कमांड को निष्पादित करें:

BRCC32 AboutDelphi। आर सी

डिफ़ॉल्ट रूप से, संसाधन संकलित करते समय, BRCC32 .RC फ़ाइल के आधार नाम के साथ संकलित संसाधन (.RES) का नाम देता है और इसे .RC फ़ाइल के समान निर्देशिका में रखता है।

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

सहित (लिंकिंग / एंबेडिंग) संसाधन निष्पादनकर्ताओं के लिए

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

लेख का पालन करने के लिए, आपको एक नई डेल्फी परियोजना की आवश्यकता होगी खाली फॉर्म (डिफ़ॉल्ट नई परियोजना)। बेशक {$ R AboutDelphi जोड़ें। RES} मुख्य प्रपत्र की इकाई को निर्देश। यह अंततः देखने का समय है कि डेल्फी एप्लिकेशन में संसाधनों का उपयोग कैसे किया जाए। जैसा कि ऊपर उल्लेख किया गया है, एक exe फ़ाइल के अंदर संग्रहीत संसाधनों का उपयोग करने के लिए हमें एपीआई से निपटना होगा। हालाँकि, डेल्फी मदद फ़ाइलों में कई तरीके पाए जा सकते हैं जो "संसाधन" सक्षम हैं।

उदाहरण के लिए, पर एक नज़र डालें LoadFromResourceName एक TBitmap ऑब्जेक्ट की विधि। यह विधि निर्दिष्ट बिटमैप संसाधन को निकालती है और इसे TBitmap ऑब्जेक्ट असाइन करती है। यह * बिल्कुल * LoadBitmap API कॉल करता है। हमेशा की तरह डेल्फी ने आपकी आवश्यकताओं के अनुरूप एपीआई फ़ंक्शन कॉल में सुधार किया है।

अब, TMediaPlayer घटक को एक प्रपत्र (नाम: MediaPlayer1) में जोड़ें और एक TButton (Button2) जोड़ें। OnClick ईवेंट को देखने दें:

एक मामूली * समस्या * यह है कि एप्लिकेशन उपयोगकर्ता मशीन पर एक एमपी 3 गीत बनाता है। आप एक कोड जोड़ सकते हैं जो एप्लिकेशन समाप्त होने से पहले उस फ़ाइल को हटा देता है।

निकालने *???

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

instagram story viewer