تعلم تصميم اداة ال Active X خطوة بخطوة في بيئة vb6

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

تعلم تصميم اداة ال Active X خطوة بخطوة في بيئة vb6

مُساهمة من طرف جورج صبحى في الإثنين فبراير 27, 2012 10:48 am

أول شيئ , ما هي اداة ال Active X ؟



اداة الاكتيف اكس هي عبارة عن اداة مثل اي اداة من ادواتVisual Basic الشائعة : مربع النص , ليبل , كوماند .....الخ.
اداة الاكتيف اكس يمكنك وضعها في اي برنامج مصمم بالفيجوال ييسك .
اداة الاكتيف اكس تعمل على توفير الجهد حيث انك بواسطتها لا تضطر الى كتابة الكود مرات عديدة في البرنامج مما يختصر لك الكود ايضا.


كيف يمكنك عمل اداة Active X ؟


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


بداية العمل



أختر من قائمة الفيجوال File->New Project كما هو موضح :




اختر Active X Control ومن ثم اضعط OK كما هو موضح :




فورم جديد سوف يظهر بدون شريط عنوان كما هو موضح :







اختر من القائمة Project->Project1 Properties. كما هو موضح :





يمكنك تغيير اسم الاداة تبعتك بتغيير ال Project Name الى اي اسم كما هو موضح :





هذا الاسم ما سوف تشاهده عند الانتهاء من عمل الاداة انا مثلا سميت الاداة MyFirstOcx كما هو موضح :





الان اضغط الزر الايمن للماوس واختر Properties من القائمة كما هو موضح :




خاصية الاسم للفورم تكون UserControl1 غيرها الى My Control كما هو موضح :




هذا الاسم سوف يظهر للمستخدم عند اختيار الاداة : وهكذا .My Control1 , My Control2 ….. .


بداية برمجة الاداة


اضف زر امر ( (Command Button الى الفورم وسميه Command1 كما هو موضح :




هذا ما سوف تظهر عليه اداتك.
اداتك هي عبارة عن الفورم وما عليه ولكن نحن لا نريد ان يظهر الفورم ما نريد هو الكوماند فقط
لذلك اعمل resize للفورم كي يتناسب مع الكوماند ولا يظهر منه شيئ كما هو مبين :





الان الاداة سوف تظهر على شكل زر.
ولكنها ليست زر وانما هي فورم وبداخله زر.
ولكن ماذا لو قام المستخدم بعمل Resize للاداة في وقت التصميم (مثل اداة ال Command Button
لحل هذه المشكلة وعندما يقوم المستخدم بعمل Resize للاداة يجب علينا ان نجعل الفورم يتناسب مع الزر الذي وضعناه.
ضع هذا الكود لجعل المستخدم يقوم بresize الزر بدلا من الفورم :


Private Sub UserControl_Resize()
Command1.Width = UserControl.Width
Command1.Height = UserControl.Height
End Sub


To be continued



انجاز عملية خصائص الاداة


كل اداة لها خصائص معينة مثل : Name , Left , Index , Tag ….etc..
ولكن اداتنا سوف تحتوي هذه الخصائص افتراضيا ولكننا نريد ان نضيف خصائص لا تاتي افتراضية مثل Text وهو عبارة عن نص الرسالة التي سوف تظهرعندما يقوم المستخدم بالضغط على الاداة.



'انجاز خاصية ال Text property


عند قرائة خاصية النص ( Reading Text Property): تحدث هذه الحالة عندما نريد ان نقرا الخاصية التي وضعها المستخدم.

على سبيل المثال عندما يضع المستخدم القيمة "Abo Sabreen" فان نتيجة القراءة سوف تعيد "Abo Sabreen" وهذا ما نريده بالضبط.

الان ضع الكود التالي في الفورم :


Dim TextVariable As String

ال TextVariable هو عبارة عن المتغير الذي يحمل قيمة خاصية النص(Text Property).



الان ضع الكود التالي داخل الفورم ايضا :


Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
TextVariable = PropBag.ReadProperty("Text", "There is no message")
End Sub


الكود السابق يقرأ قيمة خاصية النص (Text Property) اذا كانت فارغة فانه يعيد القيمة الافتراضية وهي
"There is no message" وهكذا نكون قد استدعينا قرائة خاصية النص ( Reading Text Property).

الان يجب ان ننجز طريقة القرائة , ضع الكود التالي :


Public Property Get Text() As String
Text = TextVariable
End Property

قيمة خاصية النص ( Text Property Value) سوف تعيد قيمة نص ولذلك وضعنا As String.


انجاز اسلوب الكتابة



ان ضرورة الكتابة تحدث عندما نريد ان نقوم بتحديث المتغير الذي يحمل لنا قيمة الخاصية (TextVariable )


ولعمل ذلك قم بوضع الكود التالي داخل الفورم:


Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("Text", TextVariable, "There is no message)
End Sub

الكود في الأعلى يقوم بكتابة قيمة الخاصية الجديدة الى المتغير (TextVariable) ويقوم يتحديث خاصية النص.
اذا كانت الكتابة للمتغير (TextVariable) تعيد لا شيئ فضع قيمة خاصية النص الى "There is no message".


وبهذا نكون قد انجزنا عملية اسلوب الكتابة.

ضع الكود التالي داخل الفورم :


Public Property Let Text(ByVal New_Text As String)
TextVariable = New_Text
PropertyChanged "Text"
End Property

القيمة الجديدة لخاصية النص مررت بالمعامل ( New_Text ) طبعا هذا المعامل هو عبارة عن String وذلك لان خاصية النص ( Text Property) هي عبارة عن String.

وضعنا هنا المتغير ( Text Variable) ليحمل القيمة الجديدة لخاصية النص (Text Property) وفي السطر الثاني من الكود تم الاعلان ان خاصية النص قد تغيرت.


انجاز الاحداث( Events)




عند نقر المستخدم على الاداة فانه يظهر صندوق رسالة في هذه العملية نحتاج الى حدثين :

1. Keypress.

2. .Click

اولا يجب علينا ان نقوم بتعريفهم ضع الكود التالي داخل الفورم :


Event Click()
Event KeyPress(KeyAscii As Integer)


انجاز علمية النقر ( Click Event)


نحن نريد ان يظهر صندوق رسالة وتنفيذ الكود الذي وضعه المستخدم عندما يقوم المستخدم بالنقر على الاداة لذلك ضع الكود التالي :


Private Sub Command1_Click()
MsgBox (TextVariable)
RaiseEvent Click
End Sub

حفظ وتشغيل الاداة


لحفظ الاداة اذهب الى (File->Save Project) كم هو موضح في الصورة :




الان لعمل الاداة على شكل ocx اذهب الى File->Make MyFirstOCX.ocx كما هو موضح :


وبهذا تكون الاداة قد انشئت وسجلت داخل نظامك.

ولاستدعاء الاداة من داخل مشروعك اذهب الى Project->Components ضع صح عند MyFirstOcx كما هو موضح:





والان سوف تشاهد الاداة في صندوق الادوات ( ToolBox) :




اضف الاداة الى الفورم وغير حجمها الى القياس الذي تريده وضع كلمة " Abo Sabreen" في Text وشغل البرنامج واضغط على الاداة سوف يظهر صندوق رسالة .

اتمنى ان اكون قد افدتكم في نقل هذا الدرس.

جورج صبحى
.....
.....

تاريخ التسجيل : 18/02/2011
المساهمات : 98
النقاط : 211
التقيم : 3
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى