मैं केवल एक एकल .exe वितरित करना चाहता हूं, हालांकि, रनटाइम पर मैं उपयोगकर्ताओं को हार्ड डिस्क ड्राइव पर कुछ एम्बेडेड छवि संसाधन निकालने के लिए चाहता हूं।मैं रनटाइम पर किसी फ़ाइल में संसाधन कैसे निकाल सकता हूं?
क्या मैं, और यदि ऐसा है, तो कैसे?
मैं केवल एक एकल .exe वितरित करना चाहता हूं, हालांकि, रनटाइम पर मैं उपयोगकर्ताओं को हार्ड डिस्क ड्राइव पर कुछ एम्बेडेड छवि संसाधन निकालने के लिए चाहता हूं।मैं रनटाइम पर किसी फ़ाइल में संसाधन कैसे निकाल सकता हूं?
क्या मैं, और यदि ऐसा है, तो कैसे?
डेल्फी के TResourceStream का उपयोग करें। यह कन्स्ट्रक्टर संसाधन को स्मृति में ढूंढ और लोड करेगा, और यह SaveToFile विधि डिस्क लेखन करेगा।
कुछ इस के लिए इसी तरह काम करना चाहिए:
var
ResStream: TResourceStream;
begin
ResStream := TResourceStream.Create(HInstance, 'YOURRESOURCENAME', RT_RCDATA);
try
ResStream.Position := 0;
ResStream.SaveToFile('C:\YourDir\YourFileName.jpg');
finally
ResStream.Free;
end;
end;
आप नाम के बजाय संसाधन आईडी का उपयोग कर सकते हैं, तो यह एक छोटे से कम स्मृति है। उस स्थिति में, आप CreateFromID के साथ बनाएँ को प्रतिस्थापित करेंगे, और स्ट्रिंग नाम की बजाय संख्यात्मक आईडी की आपूर्ति करेंगे।
TResourceStream
बनाएं। आपको वर्तमान EXE फ़ाइल के लिए मॉड्यूल इंस्टेंस हैंडल (आमतौर पर SysInit.HInstance
, या जो कुछ भी आपको LoadLibrary
या LoadPackage
से मिलता है), संसाधन प्रकार (जैसे rt_Bitmap
या rt_RCData
), या तो संसाधन का नाम या संख्यात्मक आईडी की आवश्यकता होगी। फिर स्ट्रीम की SaveToFile
विधि को कॉल करें।
try
if not Assigned(Bitmap)
then
Bitmap := TBitmap.Create();
Bitmap.LoadFromResourceName(HInstance,SRC);
except
on E:Exception do
ShowMessage(e.Message);
end;
और फिर बिटमैप को डिस्क पर सहेजें।
शायद यह संसाधनों के साथ काम करने की आवश्यकता होने पर भी यह आसान हो सकता है। Delphidabbler/ResourceFiles
धन्यवाद, केन, बहुत अच्छा लगता है। बीटीडब्ल्यू, हिंदुस्तान के लिए मूल्य क्या है? – Mawg
ओएस आपको जो भी मूल्य बताता है, @ लिनिक्स। 'हिंदुस्तान' एक वैश्विक चर है जो आपके प्रोग्राम के शुरू होने के बाद डेल्फी आपके लिए प्रारंभ करता है। यह * SysInit * इकाई में है। –
+1 और फिर धन्यवाद! – Mawg