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

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


محمد
09-27-2008, 01:01 AM
الدرس الثاني عشر :
رقم الدرس: vbdotnet2008sbsl0012

برنامج المدخلات التجريبي:

لديك الآن خبرة لا باس بها في الـ CheckBox وكذلك في الأحداث والخصائص والمكونات. الآن سأعطيك برنامج مدخلات تجريبي لترى كيف يمكن الاستفادة من بعض المكونات في معرفة مدخلات المستخدم.
البرنامج في المرفقات الملف رقم 006 بعد فتح البرنامج ستجد البرنامج كما في الشاشة التالية:

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

شَغل البرنامج بالضغط على F5 وجرب الخيارات الموجودة في المشروع مثلاً: كمبيوتر مكتبي أو محمول ثم اختر هاتف وآلة حاسبة مع آلة تصوير ثم لاحظ التغيرات على الفورم.

مرحلة الكود:
بما أننا قد تعرفنا سابقاً على العديد من مراحل الكود وطريقة كتابة الأكواد ولم كتبنا الكود بهذه الطريقة (ستلاحظ أننا سنقلص من الشرح الممل للكود). قمنا باختصار بعض الكود ببعض الطرق في المثال أعلاه، لاحظ أن هناك عدد ثلاثة لنوع الجهاز وفي كل مرة تختار نوع الجهاز تظهر صورة للجهاز المختار سواء كان محمول أو مكتبي أو ماكنتوش. أما الـ ListBox1 فيحتوي على أربعة بنود مع ثلاثة خيارات من المعدات المكتبية وخيارين للدفع بينما يوجد فقط ستة مربعات للصورة فكيف تم ذلك، لاحظ أن اختيار نوع الجهاز واختيار احد البنود في قائمة ListBox1 أو اختيار طريقة الدفع يسمح لك باختيار بند واحد فقط ولا يسمح لك باختيار أكثر من خيار وعلية فقد تم وضع مربع صورة واحد لكل قائمة من القوائم أعلاه وعليه فقد وفرنا العديد من صناديق الصور والعشرات من الأسطر في الكود. فقط المعدات المكتبية تم وضع مربع صورة لكل خيار بسبب أن الخيار مفتوح لاختيار أكثر من بند. قم بعمل Right-Click على الفورم في المشروع المرفق رقم 006 ثم اختر View Code ثم لاحظ الكود أولاً تك وضع الكود التالي تحت الحدث Load التابع للفورم ليتم تنفيذ الكود أول ما يفتح البرنامج:

RadioButton1.Checked = True
ListBox1.Items.AddRange(New Object() {"هارد خارجي", "طابعة", "ماسح ضوئي", "سماعات"})


السطر الأول من الكود ليتم اختيار RadioButton1 (التابعة للكمبيوتر المكتبي) في الحالة الطبيعية (أول ما يفتح البرنامج). السطر الثاني من الكود يقوم بتعبئة الـ ListBox1 بالبنود:
هارد خارجي، طابعة، ماسح ضوئي، سماعات.
الكود التالي تابع RadioButton1 تحت الحدث CheckedChanged:

Pc.Visible = True
Pc.Image = Global.Input.My.Resources.Resources.PComputr

تم إظهار مربع الصورة وتحميل صورة الكمبيوتر له من ملف Resources المرفق مع المشروع. أما الكود الذي يليه فهو تابع للـ RadioButton2 ويقوم بتحميل الصورة التابعة للماكنتوش أما الذي بعده فيحمل صورة الكمبيوتر المحمول لاحظ أننا لم نخفي الصورة الأول الموجودة في مربع الصورة لأننا سنقوم بتحميل الصورة في نفس مربع الصورة وليس في مربع صورة آخر.
الكود التالي يتبع المكون CheckBox1 تحت الحدث CheckedChanged:



If CheckBox1.Checked = -1 Then
Tel.Image = Global.Input.My.Resources.AnswMach
Tel.Visible = True
Else
Tel.Visible = False
End If


لتوضيح الكود أعلاه انظر الصورة التالية:

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

ستجد إن المربع إما أن يكون مختار أو ليس مختار وهذا ما يسمى بالبرمجة بالخيار Boolean ومعناه صحيح أو خطأ. صحيح أو خطأ (صحيح = سالب واحد، خطأ = صفر)،للمزيد حول True صحيح أو False خطأ
على هذا الرابط: (لـ حامد الهادي عيد) (http://vb4arab.com/vb/showthread.php?p=15891#post15891)

ففي الكود أعلاه طلبنا من الكمبيوتر التأكد إذا كان CheckBox1 مؤشر فإذا كان مؤشر يحمل صورة الهاتف وفي حالة العكس يقوم بإخفاء الصورة واستخدمنا نفس الكود مع CheckBox2 و CheckBox3. الكود الذي يليهم للتعامل مع البيانات في القائمة ListBox1 وبما أننا أمام أكثر من خيارين لم نستعمل أداة الشرط If ولكننا استخدمنا أداة شرط جديدة هي Select Case، نستخدم Select Case إذا كنا أمام أكثر من ثلاثة خيارات، وفي العديد من الظروف سنعرفها في الفصول اللاحقة. لنراجع بنود القائمة في وضع التصميم نلاحظ القائمة فارغة ولكت بعد تشغيل البرنامج نلاحظ وجود أربعه بنود عليها من أين أتوا، من الكود الذي وضعناه في الحدث Load التابع للفورم وهو:


ListBox1.Items.AddRange(New Object() {"هارد خارجي", "طابعة", "ماسح ضوئي", "سماعات"})


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



Select Case ListBox1.SelectedIndex
Case 0
LstIndex.Image = Global.Input.My.Resources.Harddisk
LstIndex.Visible = True
Case 1
LstIndex.Image = Global.Input.My.Resources.Printer
LstIndex.Visible = True
Case 2
LstIndex.Image = Global.Input.My.Resources.scanner
LstIndex.Visible = True
Case 3
LstIndex.Image = Global.Input.My.Resources.Headset
LstIndex.Visible = True
End Select


السطر الأول يدعو الكمبيوتر لاختيار عملية الشرط بمعلومية الترتيب التابع للمكون ListBox1 فإذا كان البند المختار هو البند الأول فسينفذ الكمبيوتر الأوامر الموجود تحت كلمة Case 0 وقبل كلمة Case 1 وهي إظهار الصورة التي تحددها له في مربع الصورة المحدد وإظهار الصورة في مربع الصورة. الكود الذي يليه تابع للمكون ComboBox1 تحت الحدث SelectedIndexChanged والذي يعني (تغير البند المختار في الكمبوبوكس) نلاحظ إن فكرة الكود التابع الكمبوبوكس نفس الفكرة السابقة في كود القائمة ListBox. أما الكلمة End في الكود فقد تعرفنا عليها سابقا في هذا الكتاب (اختبر معلوماتك!!!).

ملاحظة: ستجد نسخة من المشروع أعلاه مع المرفقات في المجلد رقم 006

ملاحظة: ستلاحظ أعلاه كيف تم استدعاء الصور للعرض بغير الطريقة التي تعلمتها مع التمارين السابقة (حيث تم استدعاء الصور من ملف Project Resources file الموجود ضمن ملفات المشروع باسم Resources التي يتم تحديدها من الخصائص- الخاصية Image- ثم Project Resources file ثم Import ثم نختار الصورة التي نريد لتقوم بيئة التطوير بنقلها إلى ملف Resources ضمن ملفات المشروع)، في الحقيقة تستطيع استعراض الصور في برنامجك بأكثر من طريقة حسب الحاجة وكذلك حسب حجم البرنامج ونوعه (لان بعض البرامج تحتاج للكثير من الصور التي لا يمكن ذكر مسار كل صورة على حده لذلك فهناك العديد من الطرق للاحتفاظ بالصور ضمن ملفات البرنامج، ولان بعض الصور لا تريد لها أن تُنسخ إلى مكان أخر في الكمبيوتر مثل الشعارات وغيرها من الصور). لذلك وفرت لنا بيئة التطوير دمج الصور ضمن المشروع أو التطبيق للمزيد اذهب إلى التعليمات وابحث عن هذين الموضوعين: (1-How to: Create Embedded Resources), (2-Accessing Application Resources)
المرفقات الملف 006