الأخوة الكرام
لو تكرمتم أحد يعطينا فكرة عن الملف الذي امتداده Res
ـــ الفائدة منه
ـــ كيفيه انشاؤه
ـــ ضمه الى المشروع
ـــ إن امكن مثال
لكم جزيل الشكر
:) :) :) :)
الأخوة الكرام
لو تكرمتم أحد يعطينا فكرة عن الملف الذي امتداده Res
ـــ الفائدة منه
ـــ كيفيه انشاؤه
ـــ ضمه الى المشروع
ـــ إن امكن مثال
لكم جزيل الشكر
:) :) :) :)
السلام عليكم ورحمة الله اتمنى ان تجد ما تسعى اليه فى هذه الرابطة
http://delphi.about.com/od/objectpascalide/l/aa113099a.htm
وشكرا
{ربى زدنى علما}
ملفات الموارد Ressources Files
يحتاج المبرمج في كثير من الأحيان في برامجه بعض الموارد الإضافية مثل أصوات و صور و أيقونات وعلب حوار أو غير ذلك.
لهذا الغرض يحتاج لربط ملفه مع الموارد التي سيحتاجها برنامجه إما على شكل ملفات يرفقها في مجلد, أو يرفقها داخل الملف التنفيذي.
نعم يمكنك دمج ملفات سيحتاجها البرنامج التنفيذي داخل الكود exe او تجمع داخل ملف Dll.
تقوم بربط ملف الكود البرمجي بملفات resources ذاة إمتداد res , هذه الملفات ذات الإمتداد res.* هي ملفات مصرفة Compiled تضم مجموعة من الموارد التي
سيحتاجها البرنامج الذي أنت بصدد تحريره.
ملف الموارد يمكنه أن يضم أي شيئ يمكنك أن تحتاجه:
- سلاسل محرفية Ressources String.
- قوائم Menu.
- علب حوار شخصية Dialogs Box.
- خطوط Fonts.
- أيقونات.
- معلومات عن إصدارة برنامجك Version Information.
- صور Bmp.
- المؤشرات Cursors.
- ملفات Wav.
- ملفات شخصية RCData ( فورم, Html, Video Files....).
- أو غيرها من الموارد كيفما كان نوعها ,ملفات فيديو, MP3, ملفات bynary, ملفات Dll, ملفات Vxd....
كما قلت ملف res.* هو ملف مصرف وملفه المصدري هو ملف نصي text يحمل عادة إمتداد rc.*. يمكنك تحرير هذا الملف في أي محرر نص ASCII editor
تريده مثلا كبرنامج notepad.exe..
سنكتب به لائحة كل الموارد التي ستستعملها وفق هذا الإملاء:
ResNameOrID ResTYPE ResPathFileName
ResNameOrID :هو إسم من نوع string أو عدد من صنف Integer
تميز به المورد.
ResTYPE : هو صنف المورد, هناك أصناف معرفة في ويندوز ويمكنك استعمال دوال winapi جاهزة كأصناف Icon و wave و غيرها..أسماء
الموارد المعرفة إفتراضيا في ويندوز :
. Cursor · Animated Cursor · Group Cursor · Bitmap · Icon · Group Icon · Menu · Dialog · Dialog Include · String Table · Message table · Font Directory · Font · Accelerators Table · RC Data (custom binary data) · Version Information · Plug'n'Play · VXD
وكذلك يمكنك تعريف أنواع خاصة بك وتعطي إسما خاصا لهذا الصنف كأن تسميه html مثلا بالنسبة لمورد مكتوب للويب.
ResPathFileName :هو إسم الملف مع المسار الكامل إذا ما وجد في مجلد إخر.
مثال لملف موارد نصي:
support HTML "support.html" content HTML "content.html" help HTML "help.html" bg JPG "bg.jpg" back BMP "back.bmp" forward BMP "forward.bmp" home BMP "home.bmp" next GIF "next.gif"
عند كتابة هذا النص سجله في ملف بامتداد rc مثلا MyRes.rc. ثم نقوم بتصريفه إلى ملف res.
بورلاند توفر ملف سطر الأوامر BRCC32.exe يقوم بتصريف ملفات الموارد النصي إلى ملف موارد مصرف بامتداد res.
C:\> C:\DelphiPath\BIN\BRCC32.EXE C:\ProjectPath\ MyRes.rc
بعد التصريف ستحصل على ملف جديد يحمل نفس إسم ملف الموارد النصي ويحمل امتداد res .
هناك برامج لتحرير ملفات الموارد في منصة رسومية WYSIWYG و هي تقنية ما تراه هو ما ستحصل عليه : What you see is what you get
.بالنسبة لبورلاند هناك برنامجين الأول هو Image Editor وهو بسيط ولا يمكنه تحرير جميع الأصناف ويصلح فقط لصور من صنف BMP وِ Cursor و
Icons.

و هناك برنامج ثاني هو RESOURCE WORKSHOP وهو يأتي مع االإصدارات السابقة لديلفي و سي++ بويلدر إصدار entreprise و professionel.

البرنامجين تخلت عنهما بورلاند و لم تعد تدرجهما في توزيعاتها و اكتفت فقط ببرنامج سطر الأوامر Brcc32.exe الذي يوجد في مجلد Bin’ و هو Borland
Resource Compiler. و تنصح بورلاند
ببرنامج قوي يشبه منصة ديلفي و هو Resource Builder:
http://www.resource-builder.com/features.html

يوجد محرر مفتوح المصدر رائع وسهل يمكنك من تحرير و قرائة الموارد في الملفات rc و res و exe و dll وهو Resource Hacker وهو مجاني. http://angusj.com/resourcehacker" target="_blank">
http://angusj.com/resourcehacker</a>

تم تعديل هذه المشاركة بواسطة ikossan في 20 أغسطس 2007 في 16:34
سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين
يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.
اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.
الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.
إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.
و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله
أخوكم مراد
لنمر لتطبيق عملي باستعمال ملفات الموارد res:
كيف يمكنني إضافة ملف res و استفادة منه في البرمجة بلغة ديلفي؟
عند بدأ أي مشروع جديد ذو واجهة رسومية في الديلفي, فإن ديلفي ستنشأ ملف موارد تلقائيا يحمل نفس إسم المشروع يحتوي على أيقونة التطبيق وعلى معلومات
الأصدارة فقط.
لهذا سننشأ ملفنا الخاص بكل الموارد التي تريدها سواء ملف موارد واحد أو مجموعة ملفات موارد, وستدرجها في مجال Implementation على هذا النحو:
Implementation
{$R MyRes.res}ثم نعرف متغير عام قبلها في مجال Interface:
var Res : TResourceStream;
المتغير Res سنحتاجه عند استخلاص مورد من الموارد الخاصة.
صورة BMP:
image1.Picture.Bitmap.LoadFromResourceName(hinstance, 'MYBMP');
أو
Image1.Picture.Bitmap.Handle:=LoadBitmap(hInstance, 'MYBMP');
hinstance هي Instance Handle للتطبيق application.hinstance , و MYBMP هو إسم المورد داخل ملف MyRes.res الذي عرف على أنه من
صنف BMP:
MYBMP BMP c:\mypath\..\image.bmp
ألأيقونات Icon:
Form1.Icon.Handle:= LoadIcon(hInstance, ('MyIcon'));
أو
Image1.Picture.Icon.Handle:= LoadIcon(hInstance,'MyIcon');
Cursor:
// extract the Cursor from Resource Screen.Cursors[1] := LoadCursor(HInstance, 'MyCURSoR'); button12.Cursor := 1; // assigne cursor self.Cursor := 1; // assigne cursor form1.cursor:=1; // assigne cursor
ملف صوت Wave :
procedure PlayWaveRes;
var
Hres: THandle;
Pres: PChar;
begin
Hres := FindResource(0, pchar('MyWAV'), 'WAV'); // search the Resource
Hres := LoadResource(0, Hres); // load it
Pres := LockResource(Hres);
sndPlaySound(Pres, SND_MEMORY); // play the sound WAV
UnLockResource(Hres);
FreeResource(Hres);
end;
ملف MP3 :
procedure PlayMp3Res; begin Res := TResourceStream.Create(0,'MyMP3','MP3'); Res.SaveToFile(ExtractFilePath(Application.ExeName) + 'my.mp3'); Res.Free; Mediaplayer1.Close; // Mediaplayer1 is TMediaPlayer Mediaplayer1.FileName := 'my.mp3'; Mediaplayer1.Open; Mediaplayer1.Play; end; // in OnClose event of TForm, set Mediaplayer1.Close.
ملف نص Text:
Res := TResourceStream.Create(0,'MyTXT','TEXT'); MemoTexte.Lines.LoadFromStream(Res); Res.Free;
صورةJPEG :
uses jpeg; procedure PlayMp3Res; var jpg: TjpegImage; begin jpg := TJPEGimage.Create; Res := TResourceStream.Create(hinstance, 'MyJPEG', RT_RCDATA); Jpg.LoadFromStream(Res); Image1.Picture.Bitmap.Assign(jpg); Res.Free; jpg.Free; end;
والأمثلة كثيرة جدا .. أرجو أن أكون قد لخصت فوائد إستعمال الموارد في البرمجة عامة و ديلفي خاصة
شكرا لك وائل.
تم تعديل هذه المشاركة بواسطة ikossan في 20 أغسطس 2007 في 06:37
سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين
يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.
اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.
الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.
إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.
و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله
أخوكم مراد
الله عليك استاذ الاساتذة
لا اعلم ماذا اقول الا ان الاخ عروة يجب حذف الرابطة التى ارفقتها فى المشاركة السابقة لان اذا حضر الماء بطل التيمم :D
{ربى زدنى علما}
اخي الكريم ikossan
الله يعطيك الف عافية
هذا الرد ولا بلاش الله يخليك لنا ويبارك لك في علمك
عبدالله
:D :D :D :D :D
بارك الله فيك.
JuStNiCk: الله يعطيك ألف عافية والله ما قصرت, وأراك دائما في الخدمة ما شاء الله ولا قوة إلا بالله :lol: .
سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين
يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.
اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.
الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.
إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.
و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله
أخوكم مراد
هذا الرد ولا بلاش
هذا الموضوع مغلق.