تعلم تصميم اداة ال Active X خطوة بخطوة في بيئة vb6
صفحة 1 من اصل 1 • شاطر
تعلم تصميم اداة ال Active X خطوة بخطوة في بيئة vb6
أول شيئ , ما هي اداة ال 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 وشغل البرنامج واضغط على الاداة سوف يظهر صندوق رسالة .
اتمنى ان اكون قد افدتكم في نقل هذا الدرس.
اداة الاكتيف اكس هي عبارة عن اداة مثل اي اداة من ادوات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
المساهمات : 127
النقاط : 259
التقيم : 6
الجنس :
| |
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 9:18 pm من طرف wdqwd
» رش الدفان بالرياض
أمس في 7:11 pm من طرف moslema_r
» شركة تنظيف خزانات الشارقة
أمس في 6:57 pm من طرف moslema_r
» شركة مكافحة الفئران بالرياض
الإثنين أبريل 15, 2024 8:23 pm من طرف moslema_r
» افضل شركة كشف تسربات المياه بالباحة
الخميس أبريل 04, 2024 7:02 am من طرف gmalnagy
» ساعدوني وفهموني help me
الجمعة مارس 29, 2024 8:37 am من طرف linesoft
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد