نصائح

كيفية تضمين ملفات الوسائط في دلفي للتنفيذ (RC / .RES)

كيفية تضمين ملفات الوسائط في دلفي للتنفيذ (RC / .RES)

يجب أن تقوم الألعاب وأنواع التطبيقات الأخرى التي تستخدم ملفات الوسائط المتعددة مثل الأصوات والرسوم المتحركة إما بتوزيع ملفات الوسائط المتعددة الإضافية إلى جانب التطبيق أو تضمين الملفات في الملف القابل للتنفيذ.

بدلاً من توزيع ملفات منفصلة لاستخدام التطبيق الخاص بك ، يمكنك إضافة البيانات الأولية إلى التطبيق الخاص بك كمورد. يمكنك بعد ذلك استرداد البيانات من التطبيق الخاص بك عند الحاجة. هذه التقنية عمومًا أكثر استصوابًا لأنها يمكن أن تمنع الآخرين من التعامل مع هذه الملفات الإضافية.

ملفات الموارد (.RES)

في مقالة "Resource Files Made Easy" ، تم تقديم العديد من الأمثلة لاستخدام الصور النقطية والرموز والمؤشرات من الموارد. كما هو مذكور في هذه المقالة ، يمكننا استخدام محرر الصور لإنشاء وتحرير الموارد التي تتكون من هذه الأنواع من الملفات. الآن ، عندما نهتم بتخزين أنواع مختلفة من الملفات (الثنائية) داخل ملف قابل للتنفيذ من دلفي ، سيتعين علينا التعامل مع ملفات البرامج النصية للمورد (.rc) ، بورلاند الموارد مترجم أداة وغيرها.

يتضمن العديد من الملفات الثنائية في الملف القابل للتنفيذ الخاص بك خمس خطوات:

  1. قم بإنشاء و / أو جمع كل الملفات التي ترغب في وضعها في إكس.
  2. قم بإنشاء ملف نصي للمورد (.rc) يصف تلك الموارد التي يستخدمها التطبيق الخاص بك ،
  3. ترجمة ملف ملف البرنامج النصي المورد (.rc) لإنشاء ملف مورد (.res) ،
  4. ربط ملف المورد المترجم بالملف القابل للتنفيذ الخاص بالتطبيق ،
  5. استخدام عنصر الموارد الفردية.

يجب أن تكون الخطوة الأولى بسيطة ، ما عليك سوى تحديد أنواع الملفات التي ترغب في تخزينها في ملفك التنفيذي. على سبيل المثال ، سنقوم بتخزين أغنيتين .wav ، واحدة .ani متحركة وأغنية .mp3 واحدة.

قبل الانتقال ، فيما يلي بعض العبارات المهمة المتعلقة بالقيود عند العمل بالموارد:

  • لا يعتبر تحميل الموارد وتفريغها عملية تستغرق وقتًا طويلاً. الموارد هي جزء من الملف القابل للتنفيذ للتطبيقات ويتم تحميلها في نفس الوقت الذي يتم فيه تشغيل التطبيق.
  • يمكن استخدام جميع الذاكرة (المجانية) عند تحميل / تفريغ الموارد. بمعنى آخر ، لا توجد حدود لعدد الموارد المحملة في نفس الوقت.
  • بالطبع ، تقوم ملفات الموارد بمضاعفة حجم الملف القابل للتنفيذ. إذا كنت تريد ملفات تنفيذية أصغر ، ففكر في وضع الموارد وأجزاء من مشروعك في مكتبة الارتباط الحيوي (DLL) أو الاختلاف الأكثر تخصصًا.

لنرى الآن كيفية إنشاء ملف يصف الموارد.

إنشاء ملف البرنامج النصي مورد (.RC)

يعد ملف البرنامج النصي للمورد مجرد ملف نصي بسيط مع الامتداد .rc الذي يسرد الموارد. ملف البرنامج النصي بهذا التنسيق:

ResName1 ResTYPE1 ResFileName1
ResName2 ResTYPE2 ResFileName2

ResNameX ResTYPEX ResFileNameX

RexName يحدد إما اسمًا فريدًا أو قيمة عددية (ID) تحدد المورد. ResType يصف نوع المورد و ResFileName هو المسار الكامل واسم الملف إلى ملف المورد الفردي.

لإنشاء ملف نصي مورد جديد ، ما عليك سوى القيام بما يلي:

  1. قم بإنشاء ملف نصي جديد في دليل مشاريعك.
  2. تسميته إلى AboutDelphi.rc.

في ملف AboutDelphi.rc ، يكون لديك الأسطر التالية:

ساعة WAVE "c: mysounds projects clock.wav"
MailBeep WAVE "c: windows media newmail.wav"
بارد افي cool.avi
مقدمة RCDATA introsong.mp3

يحدد ملف البرنامج النصي الموارد ببساطة. باتباع التنسيق المحدد ، يسرد البرنامج النصي AboutDelphi.rc ملفين .wav ، واحد .avi للرسوم المتحركة ، وأغنية .mp3 واحدة. تربط جميع العبارات في ملف .rc اسم تعريف ونوع واسم ملف لمورد معطى. هناك حوالي عشرة أنواع موارد محددة مسبقًا. وتشمل هذه الرموز ، الصور النقطية ، المؤشرات ، الرسوم المتحركة ، الأغاني ، إلخ. يعرّف RCDATA موارد البيانات العامة. تتيح لك RCDATA تضمين مورد بيانات خام لتطبيق ما. تسمح موارد البيانات الأولية بتضمين البيانات الثنائية مباشرةً في الملف القابل للتنفيذ. على سبيل المثال ، عبارة RCDATA المذكورة أعلاه تسمي مقدمة المورد الثنائي للتطبيق وتحدد الملف introsong.mp3 ، والذي يحتوي على الأغنية لملف MP3 هذا.

ملاحظة: تأكد من توفر جميع الموارد التي تدرجها في ملف .rc الخاص بك. إذا كانت الملفات داخل دليل مشاريعك ، فلن تحتاج إلى تضمين اسم الملف الكامل. في ملف .rc الخاص بي. توجد أغاني wav * في مكان ما * على القرص وتوجد كل من الرسوم المتحركة وأغاني MP3 في دليل المشروع.

إنشاء ملف مورد (.RES)

لاستخدام الموارد المعرفة في ملف البرنامج النصي للمورد ، يجب أن نجمعها في ملف .res مع مترجم موارد بورلاند. ينشئ برنامج التحويل البرمجي للمورد ملفًا جديدًا يستند إلى محتويات ملف البرنامج النصي للمورد. يحتوي هذا الملف عادةً على ملحق .res. سيقوم رابط Delphi لاحقًا بإعادة تهيئة ملف .res في ملف كائن مورد ثم ربطه بالملف القابل للتنفيذ لأحد التطبيقات.

توجد أداة سطر أوامر Borland's Resource Compiler في دليل Delphi Bin. الاسم هو BRCC32.exe. ما عليك سوى الانتقال إلى موجه الأوامر واكتب brcc32 ثم اضغط على Enter. نظرًا لأن دليل Delphi Bin في المسار الخاص بك ، يتم استدعاء برنامج التحويل البرمجي Brcc32 ويعرض تعليمات الاستخدام (حيث تم استدعاؤه بدون أي معلمات).

ترجمة ملف AboutDelphi.rc إلى ملف .res بتنفيذ هذا الأمر في موجه الأوامر (في دليل المشاريع):

BRCC32 AboutDelphi.RC

بشكل افتراضي ، عند ترجمة الموارد ، يقوم BRCC32 بتسمية ملف المورد المترجم (.RES) بالاسم الأساسي لملف .RC ويضعه في نفس الدليل مثل ملف .RC.

يمكنك تسمية ملف المورد بأي شيء تريده ، طالما أنه يحتوي على الامتداد ".RES" واسم الملف بدون الامتداد ليس هو نفسه اسم أي وحدة أو اسم مشروع. هذا مهم لأنه ، افتراضيًا ، يكون لكل مشروع من مشاريع دلفي يتم تجميعه في أحد التطبيقات ملف مورد يحمل نفس اسم ملف المشروع ، ولكن بالامتداد .RES. من الأفضل حفظ الملف في نفس الدليل مثل ملف المشروع الخاص بك.

بما في ذلك (ربط / تضمين) الموارد إلى الملفات التنفيذية

بعد ربط ملف .RES بالملف القابل للتنفيذ ، يمكن للتطبيق تحميل موارده في وقت التشغيل حسب الحاجة. لاستخدام المورد فعليًا ، سيتعين عليك إجراء بعض مكالمات Windows API.

من أجل متابعة المقال ، ستحتاج إلى مشروع Delphi جديد بنموذج فارغ (المشروع الجديد الافتراضي). بالطبع أضف التوجيه {$ R AboutDelphi.RES} إلى وحدة النموذج الرئيسي. لقد حان الوقت أخيرًا لمعرفة كيفية استخدام الموارد في تطبيق دلفي. كما ذكر أعلاه ، من أجل استخدام الموارد المخزنة داخل ملف exe ، يتعين علينا التعامل مع API. ومع ذلك ، يمكن العثور على عدة طرق في ملفات مساعدة Delphi التي يتم تمكين "الموارد".

على سبيل المثال ، نلقي نظرة على LoadFromResourceName طريقة كائن TBitmap. هذا الأسلوب استخراج مورد الصورة النقطية المحدد ويقوم بتعيين كائن TBitmap عليه. هذا هو بالضبط * ما يفعله استدعاء API LoadBitmap. كما هو الحال دائمًا ، قام Delphi بتحسين اتصال وظيفة API ليناسب احتياجاتك بشكل أفضل.

الآن ، أضف مكون TMediaPlayer إلى نموذج (الاسم: MediaPlayer1) وأضف TButton (Button2). دع حدث OnClick يبدو:

مشكلة بسيطة واحدة * هي أن التطبيق ينشئ أغنية MP3 على جهاز المستخدم. يمكنك إضافة رمز يحذف هذا الملف قبل إنهاء التطبيق.

استخراج *. ؟؟

بالطبع ، يمكن تخزين كل نوع آخر من الملفات الثنائية كنوع RCDATA. تم تصميم TRsourceStream خصيصًا لمساعدتنا في استخراج هذا الملف من ملف قابل للتنفيذ. الاحتمالات لا حصر لها: HTML في إكس ، EXE في إكس ، قاعدة بيانات فارغة في إكس ، وهكذا دواليك.