المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : دروس vb 2008 Step by Step : الدرس السابع


محمد
09-07-2008, 08:17 AM
الدرس السابع

رقم الدرس: vbdotnet2008sbsl0007

ملاحظة:
عندما استخدم مصطلح مكون فاقصد به زر Button أو ليبل Label أو صندوق نص TextBox أو صندوق صورة PictureBox أو غيرها من المكونات التي تظهر في صندوق الأدوات.

بالنسبة لصندوق الصورة فبعد تحديده سترى سهم صغير أعلى يمين الصندوق قم بالضغط على السهم ثم اختر Chose Image ستفتح لك نافذة اختر Local resource ثم اختر زر Import ثم اختر صورة ستلاحظ انتقال الصورة إلى صندوق الصورة على الفورم تركت لك صورة في الملف رقم 002 باسم sky قم باختيار الصورة، طبعا بعد اختيار الصورة اذهب إلى خصائص صندوق الصورة واضبط الخاصية Visible على False. تستطيع الضغط Double-Click على الخاصية فتتغير بين True و False لأنها قيمة Boolean وكل قيمة بوليان موجودة في الخصائص تستطيع تغييرها بالضغط دبل كليك على الخاصية المراده. لنعرف الآن ماذا نريد من البرنامج الذي نقوم بتصميمه الآن شاهد الصورة التالية لتعرف ماذا نريد من البرنامج

http://www.cars-club.com/up/8-2-1/carsclub_56418283.png

لدينا اثنين من الأزرار زر ابدأ وزر توقف وصندوق للصورة فإذا ضغطنا الزر ابدأ يقوم البرنامج بتوليد الأرقام العشوائية في الثلاثة الليبلات وإذا ضغط الزر توقف فان البرنامج يتوقف عن توليد الأرقام العشوائية فإذا كان بين هذه الثلاثة الأرقام التي تم توليدها الرقم 7 ستظهر الصورة في صندوق الصورة.

مرحلة الكود:

في هذه المرحلة سوف نعرف كيف يتم توليد الأرقام العشوائية وكيفية إظهار الصورة في حالة وجود الرقم 7 في احد الليبلات. لننتبه أن الزر الذي سيبدأ في توليد الأرقام العشوائية هو الزر ابدأ والحدث الذي نريد أن يتسبب في توليد الأرقام العشوائية هو حدث النقر على الزر أو الحدث Click كيف نعرض هذا الحدث. نستطيع ذلك بأكثر من طريقة الأولى النقر المزدوج Double-Click على الزر في الفورم سينتقل لك مباشرة إلى حدث النقر على الزر. الطريقة الثانية هي عمل Right-Click على الفورم ثم اختر View Code ثم أعلى منطقة الكود اضغط السهم المنزلق ثم اختر الزر الذي تريد تعديل خصائصه ثم اذهب إلى اليمين تحت Declarations اضغط السهم ثم اختر الحدث Click انظر الشكل التالي لمعرفة كيفية الوصول إلى الحدث المراد:

http://www.cars-club.com/up/8-2-1/carsclub_69626431.png

بعد الوصول إلى مكان الحدث التابع للزر Button1 والذي هو زر ابدأ (نستطيع تغيير الاسم للزر ليتلائم مع وظيفة الزر بداخل التطبيق كما هو موضح في شرح جدول الخصائص) نقوم بكتابة الكود التالي بين الجملتين Private Sub و End Sub:


PictureBox1.Visible = False
Label1.Text = CStr(Int(Rnd() * 10))
Label2.Text = CStr(Int(Rnd() * 10))
Label3.Text = CStr(Int(Rnd() * 10))

If (Label1.Text = "7") Or (Label2.Text = "7") Or (Label3.Text = "7 ") _
Then PictureBox1.Visible = True

ملاحظات حول الكود السابق:
للانتقال من السطر الأول إلى السطر الذي يليه قم بالضغط على Enter. أما في حالة السطر الطويل فيمكنك تقصيره بإضافة _ ثم الضغط Enter بعدها مباشرة لتنتقل إلى السطر الثاني.
خلال عملية كتابة الكود ستلاحظ أن بيئة التطوير تساعدك على كتابة الكود بواسطة الإكمال التلقائي، وكذلك ستلاحظ تلوين بعض الكلمات فاللون الأزرق للكلمات المحجوزة في بيئة التطوير لأوامر البرمجة والتطوير وعلية فلا يمكن تسمية المكونات بهذه الكلمات ولا يمكن استخدامها كمتغيرات في البرنامج، أما اللون الأخضر فهو للجمل التذكيرية التي تستخدمها لتذكر لماذا كتبت هذه الجملة البرمجة وهذه الجمل لا تدخل في عملية الكود ولا يتم ترجمتها إلى لغة الآلة ولكن تستخدم للتذكير فقط. أما اللون الأحمر فسيستخدم للنصوص Texts فإذا كان لدينا نص معين في الكود فستقوم بيئة التطوير بتلوينه باللون الأحمر.
قم الآن بإضافة الكود للزر توقف:
قم بعمل Double-Click على الزر توقف الموجود على الفورم ستنقلك بيئة التطوير إلى الكود مباشرة وبالتحديد إلى الحدث Click وهو المطلوب، اكتب هذا الكود:


End
الكود أعلاه معناه أغلق التطبيق ففي حالة تشغيل التطبيق والضغط على الزر المعين سيغلق التطبيق. صورة لمنطقة الكود بعد إضافة الكود المطلوب:

http://www.cars-club.com/up/8-2-1/carsclub_78560919.png

دعونا الآن لنفكر مرة ثانية كيف يعمل هذا البرنامج بعد تشغيله: فبعد تشغيل البرنامج تكون الصورة الموجودة في صندوق الصورة مختفية وذلك لأننا ضبطنا الخاصية Visible للصندوق الصورة أوPictureBoxعلى False وحين الضغط على زر ابدأ أكثر من مرة يقوم التطبيق بتوليد أرقام عشوائية من صفر إلى عشرة


Label1.Text = CStr(Int(Rnd() * 10))


Cstr تساعد في التحويل إلى String أما Int فتعني أن الأرقام المولدة ستكون أرقاما صحيحة أما Rnd فتعني العشوائية Random حيث سيقوم البرنامج بتوليد الأرقام العشوائية، أما الرقم عشرة فهو حدود الأرقام العشوائية حيث يتم توليد الأرقام من 0 إلى 10 (جرب اكتب 100 بدل عشرة وشغل البرنامج وانظر كيف تتم عملية توليد الأرقام، حيث سيتم توليد الأرقام من 0 إلى 100) وإذا كان الرقم المولد في احد الليبلات الثلاثة يساوي 7 فسيقوم البرنامج بإظهار الصورة. أما في حالة الضغط على الزر توقف فسيتم إغلاق التطبيق. في الشكل أدناه سنوضح كيف يقوم الفيجوال بيسك بتنفيذ العملية:

الكود Label1.Text = CStr(Int(Rnd() * 10))

الكود Rnd التنفيذ 0.7055475
الكود Rnd * 10 التنفيذ 7.055475
الكود Int(Rnd * 10) التنفيذ 7
الكود CStr(Int(Rnd() * 10)) التنفيذ "7"
الكود Label1.Text = CStr(Int(Rnd() * 10)) التنفيذ يتم نقل الرقم 7 إلى الليبل1

وبعد ظهور الرقم سبعة في احد الليبلات يقوم البرنامج بإظهار الصورة في صندوق الصورة عن طريق الجملة الشرطية If، والتي تشترط وجود الرقم 7 في الليبل الأول أو الثاني أو الثالث.

لتشغيل البرنامج الذي تم تصميمه اضغط على F5، أو بالذهاب إلى قائمة Debug اختر Start Debugging.

ملاحظة: عند تشغيل البرنامج لأكثر من مرة ستلاحظ أن الأرقام التي يتم توليدها متشابهه، جرب ذلك بتشغيل البرنامج أكثر من مرة وقم بتدوين الأرقام في الخانات الثلاث ستلاحظ تكرار الأرقام بين كل تشغيل والآخر للبرنامج. إذا ما الحل علينا أن نعرف إن الدالة Ran تقوم بتوليد نفس الأرقام العشوائية ولجعل هذه الأرقام تختلف بشكل عشوائي حقيقي، نضيف الكلمة Randomize للفورم عند الحدث Load وللوصول إلى الحدث نضغط Double-Click على الفورم فسينقلنا مباشرة إلى الحدث Load. أو الذهاب للحدث بقراءة أحداث الفورم والوصول إلى الحدث Load كما تعلمنا سابقاً في أحداث الزر Button1.

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