كيف تستخدم دلفي ملفات الموارد

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

موقع الموارد

وضع الموارد في ملف exe مزايا:

  • يمكن الوصول إلى الموارد بشكل أسرع لأنه يستغرق وقتًا أقل لتحديد موقع مورد في الملف القابل للتنفيذ مما يستغرقه لتحميله من ملف قرص.
  • يمكن احتواء ملف البرنامج والموارد في وحدة واحدة (ملف exe.) دون الحاجة إلى الكثير من الملفات الداعمة.

محرر الصور

بادئ ذي بدء ، نحن بحاجة إلى إنشاء ملف موارد. الملحق الافتراضي لملفات الموارد هو.RES. يمكن إنشاء ملفات الموارد باستخدام محرر صور دلفي.

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

instagram viewer

بما في ذلك الموارد في التطبيقات

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

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

لا تقم بمسح جزء {$ R * .DFM} عن طريق الخطأ ، لأن هذا هو سطر التعليمات البرمجية الذي يخبر Delphi بالربط في الجزء المرئي من النموذج. عندما تختار صور نقطية لأزرار السرعة أو مكونات الصورة أو مكونات الأزرار ، فإن دلفي تتضمن ملف الصورة النقطية الذي اخترته كجزء من مورد النموذج. تقوم دلفي بعزل عناصر واجهة المستخدم الخاصة بك في ملف .DFM.

لاستخدام المورد فعليًا ، يجب عليك عمل القليل واجهة برمجة تطبيقات Windows المكالمات. يمكن استرداد الصور النقطية والمؤشرات والرموز المخزنة في ملفات RES باستخدام وظائف API LoadBitmap, تحميل المؤشر ، و LoadIcon على التوالي.

صور في الموارد

يوضح المثال الأول كيفية تحميل صورة نقطية مخزنة كمورد وعرضها في ملف الصورة مكون.

إجراء TfrMain.btnCanvasPic (المرسل: TObject) ؛
فار bBitmap: TBitmap ؛
ابدأ
bBitmap: = TBitmap. خلق؛
محاولة
bBitmap. مقبض: = LoadBitmap (hInstance، 'ATHENA')؛
Image1.Width: = bBitmap. عرض؛
ارتفاع الصورة: = bBitmap. ارتفاع؛
Image1.Canvas. رسم (0،0 ، bBitmap) ؛
أخيرا
bBitmap. مجانا؛
النهاية;
النهاية;

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

طريقة أخرى يمكننا استخدامها لعرض صورة نقطية من مورد هي كما يلي:

إجراء TfrMain.btnLoadPicClick (المرسل: TObject) ؛
ابدأ
صورة 1. صورة. صورة نقطية.
LoadFromResourceName (hInstance، 'EARTH') ؛
النهاية;

المؤشرات في الموارد

شاشة. المؤشرات [] هو مجموعة مصفوفة من المؤشرات التي قدمتها دلفي. باستخدام ملفات الموارد ، يمكننا إضافة مؤشرات مخصصة إلى خاصية Cursors. ما لم نرغب في استبدال أي من الإعدادات الافتراضية ، فإن أفضل استراتيجية هي استخدام أرقام المؤشر بدءًا من 1.

إجراء TfrMain.btnUseCursorClick (المرسل: TObject) ؛
مقدار ثابت NewCursor = 1 ؛
ابدأ
شاشة. المؤشرات [NewCursor]: =
LoadCursor (hInstance، 'CURHAND') ؛
Image1.Cursor: = NewCursor؛
النهاية;

الرموز في الموارد

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

إذا أردنا ، على سبيل المثال ، تحريك رمز البرنامج عند تصغير البرنامج ، فسيؤدي الكود التالي المهمة.

من أجل الرسوم المتحركة ، نحن بحاجة إلى TTimer مكون في نموذج. يحمّل الرمز رمزين من ملف الموارد في مصفوفة من TIcon شاء؛ يجب أن يتم الإعلان عن هذا الصفيف في الجزء العام من النموذج الرئيسي. سنحتاج أيضا NrIco، هذا هو نوع عدد صحيح متغيرأعلن في عامة جزء. ال NrIco يستخدم لتتبع الرمز التالي للعرض.

عامة
nrIco: عدد صحيح ؛
MinIcon: صفيف [0..1] من TIcon ؛
...
إجراء TfrMain. FormCreate (المرسل: TObject) ؛
ابدأ
MinIcon [0]: = TIcon. خلق؛
MinIcon [1]: = TIcon. خلق؛
MinIcon [0] .Handle: = LoadIcon (hInstance، 'ICOOK')؛
MinIcon [1] .Handle: = LoadIcon (hInstance، 'ICOFOLD')؛
NrIco: = 0 ؛
المؤقت 1. المدة: = 200 ؛
النهاية;
...
إجراء TfrMain. Timer1Timer (المرسل: TObject) ؛
تبدأ IsIconic (تطبيق. مقبض) ثمابدأ
NrIco: = (NrIco + 1) عصري 2;
تطبيق. أيقونة: = MinIcon [NrIco]؛
النهاية;
النهاية;
...
إجراء TfrMain. FormDestroy (المرسل: TObject) ؛
ابدأ
MinIcon [0] .Free ؛
MinIcon [1] .Free ؛
النهاية;

في ال مؤقت 1 معالج الأحداث ، Isimimized يتم استخدام الوظيفة لمعرفة ما إذا كنا بحاجة إلى تنشيط رمزنا الرئيسي أم لا. أفضل طريقة لتحقيق ذلك هي التقاط أزرار تكبير / تصغير وليس الفعل.

الكلمات الأخيرة

يمكننا وضع أي شيء (حسنًا ، ليس كل شيء) في ملفات الموارد. توضح لك هذه المقالة كيفية استخدام الموارد لاستخدام / عرض الصورة النقطية أو المؤشر أو الرمز في تطبيق دلفي الخاص بك.

ملاحظة: عندما نقوم بحفظ مشروع دلفي على القرص ، تقوم دلفي تلقائيًا بإنشاء ملف .RES واحد يحمل نفس اسم المشروع (إذا لم يكن هناك شيء آخر ، فإن الرمز الرئيسي للمشروع في الداخل). على الرغم من أنه يمكننا تغيير ملف الموارد هذا ، إلا أنه لا ينصح بذلك.

instagram story viewer