Search VB 2010

Sunday, April 17, 2011

OOP VB .Net Toturials and Examples - دروس فى ال أو أو بى

تعرفنا على الخصائص Properties

نقوم بعمل مشروع جديد Project1 - نوعه Windows Application - و الهدف منه انشاء MsgBox - و يتكون من عدد (2) فورم
الاولى باسم (Form1) و الثانيه باسم (Msg) و ايضا Module1
فى الـفورم Form1 نضيف مفتاح
فى الفورم Msg نضيف عدد (2) Button + عدد (1) Label
- جميعنا يعرف الـ MsgBox و هى عبارة عن Form عاديه بها مجموعه من الخصائص و الدوال و الاجراءات المبرمجه و فى هذا المثال سنقوم بعمل MsgBox مصغر يمكننا استخدامه فى جميع المشروعات .
أكواد الموديول :
Public Function Msg1(ByVal Prompt As String)
Msg.Label1.Text = Prompt
Msg.Show()
و فى هذا الكود نقوم بعمل Function اسمها Msg1 مبنيه على متغير اسمه Prompt نوعه String متغير نصى
Prompt سيكون المسؤل عن نقل قيمة الــ Msg1 .
بينما فائدة هذه الداله هو استدعاء الفورم رقم 2 Msg و التى تمثل MsgBox المصغرة و مساواة قيمتها Prompt بقيمة Label1 فى الفورم Msg و بالتالى أى قيمة يأخذها Label1 هى قيمة الــ Prompt و بالتالى قيمة Msg1.
فى الفورم Form1 فى الحدث Button1_Click
Msg("Hello World")
الان قم بتنفيذ المشروع Run و عند الضغط على Button1 فى الـ Form1 لاحظ النتيجه ....
سنقوم الان بزيادة بعض الخصائص و القيم للـ Msg1 المصغرة . كما بالصورة رقم 17
لاحظ : الخصائص جاءت قبل Msg1.ShowDialog و المسؤله عن اظهار الـ Msg1 حيث يجب تنفيذ الاكواد قبل اظهار الرساله.
يمكنك كتابة جميع الاكواد الممكنه فى المنطقة قبل Msg1.ShowDialog
صورة رقم 17

- انتقل الى الحدث Button1_Click و اكتب Msg1 اضغط على مسافه ستجد أن معاملات الداله Msg1 مطلوبه منك قم بالتعويض عنها و نفذ المشروع ...


سنقوم الان باضافة دالة جديده و لكن بنفس الاسم و سنضع بعض الخصائص كما بالصورة رقم 18
صورة رقم 18
و لاحظ : عند التعويض فى الحدث Button1_Click عن قيمة الـ Msg1 ستجد أن المعاملات Parameters المراد التعويض عنها اصبحت نوعين عباره عن معاملات الداله الاولى و معاملات الداله الثانية و هذا يسمى بالـــ OverLoading
و يستخدم الــ OverLoading للتعامل مع الدوال كما فى المثال لاعطائها ديناميكية أكثر للتعامل فيمكنك عن طريق هذه الخاصيه أن تقوم باضافة أحداث و خصائص و إجراءات جديده للدالة Msg1 لا يمكنك تجميعها تحت سقف واحد و لكن عن طريق تقسيمها الى مجموعه من الدوال أو الاجراءات أو الخصاص و جميعها ستصب فى نفس الداله فى النهاية .
و عند التنفيذ يتلاحظ أن المشروع يطلب منك اختيار مجموعه معينه من اجراءات الداله Msg1 لتنفيذها ....
و على سبيل المثال قم باضافة داله ثالثه بنفس الاسم
Public Function Msg1 (ByVal Prompt As Integer)
Msg.Text = Prompt
Msg.ShowDialog()
لاحظ ان عند تنفيذ الكود أصبح مطلوب منك اختيار 3 مجموعات من الاكواد اتنفيذها منها Prompt كمتغير رقمى و هكذا ....

OOP VB .Net Toturials and Examples - دروس فى ال أو أو بى

تعلمنا المزيد عن الــ Class ...

الخصائص أو Properties
- كيف نقوم بعمل خاصيه داخل الـــ Class ؟؟؟
- لكى نجيب على هذ التساؤل يجب أولا قراءة الاتى بتمعن :
............. ما هى وظيفة الخاصية ؟
- هى نفس وظيفة المخزن (المتغير) تقوم بتخزين قيمة داخلها لحين استخدامها ............
- سنقوم بعمل مشروع جديد Windows Application يحتوى على Form و Class
1) نفتح الـ Class1 و نكتب فيه الكود الاتى :
Public Proprty Test()
و نضغط على Enter تلاحظ : تم اضافة سطور جديده تلقائيا كما بالصورة رقم 10
صورة رقم 10
حيث Get هى المسؤله عن استرجاع القيمه Value
       Set هى المسؤله عن تخزين القيمه Value
القيمة Value هى القيمة الافتراضيه لمدخلات الخاصيه أو بمعنى اخر هى المسؤله عن تخزين القيمه ف الاجراء Set و يمكن استبدالها بأى اسم متغير اخر, و لكن يجب ان يكون نوع المتغير Value من نفس نوع الخاصيه بمعنى :
اذا قمنا بكتابة كود الخاصيه الموضح بالصورة 10 بشكل تانى :
Public Property Test() As Double
Get
Codes .......................
End Get
Set (ByVal Value as Double)
Codes .......................
End Set
End Property
ايضا من ضمن الفروق ين المتغير (المخزن) و الخاصيه أن المتغير لا يمكن عمل قيود أو Validation على النتيجه و لكن يمكن عمل ذلك بالخاصيه ...
- و الخواص تنقسم الى
1) ReadWrite قراءة و كتابة
2) ReadOnly قراءه فقط
3) WriteOnly كتابه فقط
1) ReadWrite Property خاصية تسمح بالقراءه و الكتابه كما بالصورة رقم 11
صورة رقم 11
وظيفة الخاصيه التى تسمح بالقراءه و الكتابه هى (التخزين و الاسترجاع للقيمه Value) أى يمكنها عمل القيام بالعمليتين معا و فى المثال الموضح بالصورة 11 سنبدأ كتابه هذا الكود فى الـClass1 مباشره بعد المكتوب فى صورة رقم 10 و المثال يشرح كيفية عمل خاصيه تقوم باخراج رساله بجميع الارقام <= 40000 و لكن تعطى رسالة اعتراض على اى مبلغ أخر أكبر و لتجريب المثال انظر صورة رقم 12 .
يقوم الكود بتنفيذ Set ثم Get و Y عباره عن متغير وسيط لتحقيق الشرط حيث لا يمكن استخدام X فى المنطقة Get لانها منطقه منفصله تماما عن Set .
الان قم باضافة متغير بعد الخاصيه بنفس الاسم و ليكن الكود :
صورة رقم 12
Public Salary As Double
و لاحظ الاعتراض حيث انه تم Salary كخاصيه فى نفس الـ Class
نقوم بتغيير Salary الى Salary1 و نذهب الى الحدث Button1_Click و نكتب الكود

C.Salary1 = 2000
MsgBox (C.Salary1)
لاحظ ان  الكود يشبه نفس كود الخاصيه و لكن يمكنك اعطاء قيمه لــ Salary1 كما تشاء و لكن لا يمكنك اعطاء لـ Salary الخاصيه اكبر من 40000 .
2) ReadOnly Property خاصية تسمح بالقراءه فقط كما بالصورة رقم 13
صورة رقم 13

سنقوم باضافة الخاصيه كما بالشكل و نكتب ReadOnly و بعد كتابة سطر الخاصيه نضغط Enter نلاحظ أن الاجراء Get فقط هو الذى تم تنفيذه و ذلك لأننا سنقوم باسترجاع القيمه و ليس تخزينها لأن ReadOnly عباره قراءه فقط .
ماذا سنقرأ ؟؟
صورة رقم 14

سنقرأ قيمة XX المتغير الذى تم تعريفه لأنه لا يوجد لدينا قيمه Value و لكى نعطى قيمه لــ XX انظر الصورة رقم 14 .
حيث قمنا باضافة Button2 للـ Form و فى الحدث Button2_Click نكتب الكود الموضح بالصورة و هو كود اعطاء قيمة لــ XX و المعرفه على مستوى المشروع و عند القيام بتنفيذ الكود بالضغط على Button2 تظهر رسالة Welcome .
3) WriteOnly Property خاصية تسمح بالقراءه فقط كما بالصورة رقم 15
صورة رقم 15

سنقوم باضافة الخاصيه كما بالشكل و نكتب WriteOnly و بعد كتابة سطر الخاصيه نضغط Enter نلاحظ أن الاجراء Set فقط هو الذى تم تنفيذه و ذلك لأننا سنقوم بتخزين القيمه و ليس و ليس استرجاعها لأن WriteOnly عباره كتابة فقط .
ماذا سنكتب ؟؟
سنكتب قيمة Value المتغير الذى تم تعريفة بالخاصيه و لكن من أين سيأخذ هذه القيمه ... انظر الصورة رقم 16
صورة رقم 16

حيث قمنا باضافة Button3 للـ Form و فى الحدث Button3_Click نكتب الكود الموضح بالصورة و هو كود اعطاء قيمة لــ Value لتخزينها عن طريق الكود بالصورة و للتأكد من أن القيمه بالكود Welcome تم تخزينها بالمتغير Value سنتوجه الى الخاصيه AX و بعد سطر Set سنكتب الكود
MsgBox (Value)
سنقوم بتنفيذ الكود عن طريق الضغط على Button3 نلاحظ رساله Welcome و التى تعنى أن القيمه تم تخزينها فى النهايه فى المتغير Value .

Visual Basic Courses - Share