كيفية إضافة ملفات الموارد في دلفي Executables

click fraud protection

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

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

هذه المادة سوف تظهر لك كيفية تضمين (واستخدام) ملفات الصوت ومقاطع الفيديو والرسوم المتحركة وبشكل عام أي نوع من الملفات الثنائية في ملف دلفي القابل للتنفيذ. للأغراض العامة ، سترى كيفية وضع ملف MP3 داخل دلفي إملف تنفيذى.

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

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

instagram viewer
مترجم بورلاند الموارد أداة وغيرها.

يتألف تضمين عدة ملفات ثنائية في الملف التنفيذي من 5 خطوات:

  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) تحدد المورد. إعادة النوع يصف نوع المورد و ResFileName هو المسار الكامل واسم الملف إلى ملف المورد الفردي.

لإنشاء ملف نصي مورد جديد ، قم ببساطة بما يلي:

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

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

ساعة WAVE "c: \ mysounds \ projects \ clock.wav"
MailBeep WAVE "c: \ windows \ media \ newmail.wav"
رائع AVI 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.

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

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

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

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

استخراج * ؟؟

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

instagram story viewer