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

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



PRG of RPG
26-02-2003, 12:43 AM
بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

من أروع مواضيع البرمجة هو البرمجة الكائنية ..ولكن للأسف قليل منا من يستخدمها

افتح مشروع جديد بإسم التطبيق(7-1) ثم اختر project ثم اضف class Module ...

غير الخاصية Name لل class إلى Car

تخيل أن هنالك سيارة لها اسم ولون ورقم لوحة

تحيل أن هنالك ملايين من السيارات لها اسماء وألوان وأرقام لوحات

هل يعقل أنك ستقوم بكتابة متغيرات لكل سيارة ؟ هل هي طريقة عملية ؟

هذه فائدة البرمجة الكائنية .. حيث تحدد خصائص الكائن ثم تنشئ ما تريده من الكائنات

لنتخيل أن هنالك سيارة لها اسم ولون ورقم

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

حسناً لقد اضفنا class Module وسنكتب فيه المتغيرات التالية



Public Name As String
Public Speed As Integer
Public Color As ColorConstants
Dim Number As String

لقد انشئنا اربعة متغيرات :
اسم السيارة - سرعتها - لونها - رقم اللوحة

لمذا لوحة السيارة Dim وليست Public ؟؟
وذلك لك اريك الفرق بين Public و Dim
الفرق بينهم هو أن متغيرات Public تستطيع تعديلها من الفورم مباشرة
أما متغيرات Dim فلا تستطيع الوصول إليها إلا من خلال الClass نفسه
بمعني أننا لابد من أن ننشئ دالة تقوم بالوصول إلى المتغير ... سنفهم معنى هذا الكلام بعد قليل
الان وبعد أن أنشئنا المتغيرات ، إذهب إلى Form1 واكتب في الحدث Load


Dim Car1 as new Car


أو



Dim car1 As Car
Set car1 = New Car


تؤديان نفس النتيجة وهي تعيين كائن جديد في الذاكرة مع متغيراته الأربعة التي أنشأناها

حسناً وبعد أن أنشأنا الكائن Car1 في الذاكرة نريد تعين الخواص الأريعة له

والأن أكتب (في الحدث Load أيظاً ) :



Car1. 'will show to you 3 Objects


عند كتابه هذا سيضهر عندك ثلاث عانصر وهي
Name
Speed
Color
فقط فـ Number لم تضهر لأنها متغير Dim .... هل اتضح الفرق الان :)

والان أكتب الكود التالي لتتأكد من صحة ما نفعله



Car1.Speed = 150
Msgbox Car1.Speed


سيطبع لك سرعة الكائن Car1 بعد أن أدلخنا سرعته

والأن لنجعل دالة تقوم بالوصول إلى المتغير Number

إذهب إلى الClass

وإكتب



Public Sub Set_Number(N As String) ' A Function to Set the Number
Number = N
End Sub

Public Sub Get_Number() ' A Function to Get the Number
MsgBox Number
End Sub



فقط أنشأنا دالتين (داخل الClass) الاولى تقوم بالوصول إلى المتغير Number
والثانية تقوم بطباعة المتغير Number

أرأيت لا نستطيع الوصول إلى المتغير Number إلى عن طريق دالة داخل الClass نفسه

والان لنتحقق من عمل الدالتين

إذهب إلى الفورم وداخل الحدث Load إكتب :



car1.Set_Number "121021" ' set the number
car1.Get_Number ' Get the Number


هل إتضحت البرمجة الكائنية الان ... امل ذلك :)

انتظر دقيقة هل يجب علي كتابة الخواص لك كائن واحد تلو الاخر ؟؟؟
بالطبع لا تستطيع إنشاء دالة كما فعلنا في دالة Set_Number للوصول إلى العناصر مرة واحدة

حسناً لقد صنعت مثالاً بسيطاً عن البرمجة الكائنية فيه كائنين Car1 و Car2 يتسابقان
وفيه إضافات بسيطة تستطيع فهما بسهولة لأنه لا يوجد جديد ماعدا :


bObject as Object


التعريف كـ Object مهم جداً فما هو Object ?

هو أي كائن في Visula Basic قد يكون Form1 أو Picture1 أو Picture2 لا يهم
فإذا كنت تريد دالة تقوم بتغير خلفية الفورم فستكون :


Public Sub CBackColor(bObject As Object, Color As ColorConstants) ' a Function to change the bc of an object
bObject.BackColor = Color
End Sub

أنظر إلى التطبيق (7-1) لترى المثال

_________

بما أننا تحدثنا عن البرمجة الكائنية OOP فمن الجديد بنا المضي مع ملفات dll
لطالما نظرت إلى هذه الملفات نظرة رعب وهيبة ( الا توافقني الرأي)
فالنسق لهذه الملفات dll. له هيبته
بالفعل هذه الملفات تعتمد عليها البرامج ونظام Windows بشكل رهيب

لكي لا نطيل عليكم ...

كيف أنشأ مثل هذه الملفات

إفتح فيجوال بيسك وإنتبه لا تختار Standard EXE بل إختر ActiveX dll

سم الملف من خلال الخاصية Name من class1 إلى Car
والان قم بنقل الكود الموجود في التطبيق (7-1) في الكائن Class
إلى ملف Class الجديد...
غير اسم المشروع من Project1 إلى Cars
والان اختر File ثم Make Car.dll ثم سم الملف ما تريد

لقد صنعت ملفك dll الخاص بك :)

افتح مشروع جديد ثم اختر Project ثم References ثم Browse ثم أبحث عن ملف الDll واختاره
إن لم يضع عليه علامة صح مباشرة إبحث عن Cars

والان تعامل مع الملف كأنه موجود داخل ملف Class لديك :)

إن لم تفهم أنظر إلى التطبيق (7 - 2) و التطبيق (7 - 3)

تستطيع تحميل ملف التطبيقات في موقعي في القسم الرئيسي للدروس

أتمنى لكم برمجة كائنية ممتعة :)