? Resource File (سؤال في الفيجوال بيسيك)

الكاتب : طالبة علم   المشاهدات : 1,489   الردود : 7    ‏2003-12-25
      مشاركة رقم : 1    ‏2003-12-25
  1. طالبة علم

    طالبة علم عضو

    التسجيل :
    ‏2003-12-21
    المشاركات:
    185
    الإعجاب :
    0
    السلام عليكم ورحمة الله ...

    أود أن أستفسر عن كيفية الحاق صورة الى ملف Resource بحيث تكون بغير تنسيق الـ Bitmap وكيفية تحميلها في الكود الى المكان المناسب ... حيث أن ملفات الـ Bitmap غالبا ماتأتي كبيرة الحجم على عكس الصور التي من نوع jpg ... هذا و شكراً ...

    ...
     
  2.   مشاركة رقم : 2    ‏2003-12-26
  3. رغيد الطيب

    رغيد الطيب عضو

    التسجيل :
    ‏2003-07-09
    المشاركات:
    58
    الإعجاب :
    0
    السلام عليكم ورحمة الله وبركاته ...

    الاخت السائلة ... يتيح لنا الفيجوال بيسك ثلاث دوال للتعامل مع ملفات الموراد وهي كالتالي :

    LoadResString والخاصة بتحميل نصوص من ملفات الموارد ...
    LoadResPicture والخاصة بتحميل الصور القياسية من ملفات الموارد ...
    LoadResData والخاصة بتحميل بيانات من اي نوع آخر من ملف الموراد...

    وبالنسبة للدالة LoadResPicture فهي تتعامل مع احدى الانواع التالية فقط :
    Bitmaps ( الملفات ذات الامتداد bmp )
    Cursors وهي الملفات ذات الامتداد cur
    Icons وهي ملفات الايقونات ذات الامتداد ico

    وبهذا فانه لايمكن تضمين صور الـ jpg داخل ملف الموارد كصورة ...

    ولكن يمكننا التاحيل قليلاً على الفجيوال للحصول على مبتغانا وهو تخزين صور الـ jpg ذات الحجم الصغير نسبياً ...

    والطريقة التي اقترحها هي تخزين الصور على شكل بيانات وليس على شكل صور وهو الخيار المسمى Add Custom Resouse في ملف الموارد ...

    ثم يلي ذلك بناء دالة بسيطة تقوم اولاً باستخراج البيانات من داخل ملف الموراد ثم تخزينها في القرص الصلب مؤقتاً ثم يلي ذلك تحميل الملف كصورة باستخدام الدالة العادية LoadPicture ثم يلي ذلك حذف الصورة المؤقتة من القرص الصلب ...

    طبعاً قد يبدو الامر معقداً نوعاً ما ولكنه ليس كذلك حقيقةً ويمكن ان تكون الدالة مشابهه للتالي :
    كود:
    [align=left]
    Function myLoadPicture(id) As Picture
        Dim F As Integer
        Dim B() As Byte
        Dim S As String
        
      ' توليد ملف مؤقت للصورة
        S = IIf(Environ("temp") <> "", Environ("temp"), "C:") & "\RgheedTempPicture.tmp"
        If Dir(S) <> "" Then Kill S
    
      ' تحميل الصورة من ملف الموارد
        B = LoadResData(id, "custom")
        
      ' تخزينها في القرص الصلب
        F = FreeFile
        Open S For Binary As F
        Put #F, , B
        Close F
        
      ' تفريغ الذاكرة من بيانات الصورة
        Erase B
        
      ' تحميل الصورة من الملف المؤقت
        Set myLoadPicture = LoadPicture(S)
        
      ' حذف الملف المؤقت من القرص الصلب
        Kill S
    End Function
    
    قمت بعمل تعليقات على خطوات عمل الدالة واتمنى ان يساعد ذلك في استيعاب عمل الدالة ...

    والان اصبح بحوزتنا دالة بسيطة اسمها myLoadPicture يمكن الاعتماد عليها لتحميل الصور من داخل ملف الموراد فمثلاً اذا كانت لدينا صورة مخزنة في ملف الموراد ورقمها 101 ونريد تحميلها في مربع صور اسمه Picture1 فان الكود اللازم لذلك هو كتالي :
    كود:
    [align=left]
    Picture1.Picture = myLoadPicture(101)
    
    وفي المثال المرفق برنامج بسيط يحتوي على صورتين من النوع JPG وطريقة تحميلهما عن طريق الدالة السابقة ...

    و آخر دعوانا ان الحمد لله رب العالمين .. والسلام عليكم ورحمة الله وبركاته ...
     
  4.   مشاركة رقم : 3    ‏2003-12-26
  5. سد مارب

    سد مارب مشرف سابق

    التسجيل :
    ‏2001-11-29
    المشاركات:
    18,142
    الإعجاب :
    0
    رائع .......لدي اقتراح

    شرح وافي وقوي عزيزي رغيد .......يبدو لي بانك محترف ماهر بالفيجوال بيسك
    نتمنى ان تكون مستمراً بتواجدك !
    ما رايك لو بدانا ببرمجة مشروع داتا بيس بالفيجوال بيسك عن طريق الادو او الداو وعن طريق ربطة مع اداة تصميم البينات اكسس ..على الاقل نبداء بمشروع بيسط كبرنامج تلفونات مؤسسة او برنامج حسابات بسيط او برنامج للتسجيل ومن ثم نتوسع فية ويكون هذا المشروع بواسطة فريق من محترفي الفيجوال بالمجلس اليمني ؟

    اقترحت عليك هذا الشيء لنستفيد من خبرتك الرائعه والمامك الكبير بجوانبها اتمنى ان يكون برمجةdata base programming احد الجوانب المتمرس فيها

    تحية وتقدير
     
  6.   مشاركة رقم : 4    ‏2003-12-26
  7. طالبة علم

    طالبة علم عضو

    التسجيل :
    ‏2003-12-21
    المشاركات:
    185
    الإعجاب :
    0
    السلام عليكم ورحمة الله ...

    شكرا أخي الفاضل ... لقد فهمت ما كنت أريده تماماً ، وقد قامت الدالة المرفقة بالمطلوب ...

    جزاك الله عني خيراً ...

    ...
     
  8.   مشاركة رقم : 5    ‏2003-12-26
  9. نجيب المجيدي

    نجيب المجيدي عضو فعّال

    التسجيل :
    ‏2003-12-08
    المشاركات:
    527
    الإعجاب :
    0
    أود أن أشكر الأخت الفاضلة على أسئلتها المتنوعة و التي نستفيد جميعاً منها

    الأخ رغيد أوافق الأخ سد مارب على فكرته حيث انني ايضاً أريد برنامج بهذا الشكل
    ولكن لم لا يكون البرنامج مصمم باستخدام VB.NET وبهذا نكون قد ضربنا عصفورين بحجر واحد
    فأولاً : سنتمكن من فهم عمل الأداة ADO جيداً .
    وثانياً: سنكسر حاجز الخوف ونبدأ باستخدام .NET
    أرجو أن تلبي لي طلباً صغيراً أيضاً وذلك بأن يكون هذا المشروع تحت إشرافك
     
  10.   مشاركة رقم : 6    ‏2003-12-26
  11. رغيد الطيب

    رغيد الطيب عضو

    التسجيل :
    ‏2003-07-09
    المشاركات:
    58
    الإعجاب :
    0
    السلام عليكم ورحمة الله وبركاته ....

    الاخت طالبة علم الحمد لله من قبل ومن بعد ...

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

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

    ولكي يكون طريقكما واضحاً اقول اولاً تختلف تقنية الـ ADO التي اعتدناها مع الفجوال بيسك 6 عن الموجودة في الدوت نت إذ انها قد تطورت كثيراً واصبح اسمها ADO.NET او ما يعرف بالـ +ADO ( طبعاً لايزال بإمكاننا ان نستخدم الـ ADO القديمة مع الدوت نت ) ...

    لهذا ينبغي اولاً تحديد الهذف والسلاح الذي تريدانه قبل ان تبدءا بعون الله ...

    اما الهذف فهو ان تتفقا وجميع المهتمين على مشروع معين نتعاون جميعاً في تصميمه ...

    واما السلاح فأختيار اللغة البرمجية التي سوف تستخدمانها وان وقع اختياركما على احدى المحببتين VB6 او VB.NET فسوف تجدوني معكما عضواً في المشروع ... و إن وقع الاختيار على لغة اخرى فستجدون مني الدعاء بالتوفيق من الله عز وجل بإذن الله تعالى ...

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

    والسلام عليكم ورحمة الله وبركاته ...
     
  12.   مشاركة رقم : 7    ‏2003-12-26
  13. سد مارب

    سد مارب مشرف سابق

    التسجيل :
    ‏2001-11-29
    المشاركات:
    18,142
    الإعجاب :
    0
    فلتكن ب فيجوال بيسك فيرجن 6 حتى يعم فائدتها للجميع لان في بي دوت نت غير معروفة لبعض المحترفين او لى الاقل لا زالوا مبتدئن فيها

    بالسنبة للمشروع لدي مشروع صممتة من قبل وهو برنامج تلفونات مؤسسة لكنة موسع بعض الشي ولا يفيد المبتديء ببرمجة قاعدة البيانات ما اقترحة ان نبداء ببرنامج بسيط مثلا دليل هواتف صغير او برنامج محاسبة مبسط لمعرفة كف برمجة داتا بيس من الالف الى الياء وطبعا بمساعه الجميع وتعاونهم وبتشكيل فريق برمجي لتعم الفائدة للمبتدء والمحترف على حد سواء

    هاه ماذا قلت استاذنا القدير رغيد

    واوافق نجيب بان تكون مشرف لهذا المشروع والباديء فية ومن خلال متابعتي لمواضيعك تبين لي مدى المامك الكبير بالبرمجة


    خالص ودي وتقديري للجميع
     
  14.   مشاركة رقم : 8    ‏2003-12-26
  15. azizNY

    azizNY عضو

    التسجيل :
    ‏2003-12-07
    المشاركات:
    218
    الإعجاب :
    0
    Can I Join?

    I would like to help out if its in VB 6 not vb net, (cause i had a hard time explaining it, thnx)

    Salam,
     

مشاركة هذه الصفحة