الدرس الثاني : سنتحدث في هذا الدرس عن كيفية التعامل مع Activex والتعرف على الخصائص الخاصة به والواجهة الخاصة بالتصميم :
طرق تصميم أدوات Activex :تصميم يستخدم محليا: أي تكون محتواه مع البرنامج الرئيسي وفي هذه الحالة لا يمكن أن يستخدمها أحد سوى المصمم لأنها تدمج مع الملف التنفيذي , للبرنامج .
تصميم مستقل :
وفي هذه الحالة يتم إنشائها لغرض الاستخدام العام حيث يتم تصريفها ككائن مستقل ذو امتداد (ocx) مثلاً (MyActivex.ocx) ولكي يتم استخدامها من قبل مبرمج أخر يجب أن يقوم باستدعائها أولا على البرنامج ثم يقوم بالاستخدام , ولكي يتم استدعائها قم بالضغط على الأزرار التالية Ctrl + t) ) بعد ظهور نافذة (Components)اختر استعراض (Browse.. ) ثم اختر الأداة التي أنشئت لتظهر لك في قائمة بها مجموعة من الكائنان من هنا نستطيع اختيارها , لتظهر في صندوق الأدوات كاده يستخدمها المبرمج في برنامجه .
تصميم أدوات Activex للاستخدام العام : قم بفتح Microsoft Visual Basic في بداية التشغيل ستجد مجموعة من المشاريع اختر منها ActiveX Control بعد فتح المشروع لاحظ في نافذة متصفح المشاريع (Project Explorer)ظهور مجلد أسمة User Control يحوي على نافذة اسمها UserControl قم بالنظر إلى خصائص هذه النافذة , كذلك تعرف على الأحداث العامة لها . ولكي يتم تصريف هذه الأداة (ActiveX) إلى ملف ذو امتداد (ocx) اختر من ملف(File) -(Make Project ocx) بعد ذلك يمكن إحضارها إلى مشروعك كمستخدم لها بنفس الخطوات السابقة.
تصميم أدوات Activex للاستخدام المحلي : وإن شاء الله سنقوم بالتصميم محلياً وذلك كي نتمكن من اختبار الكائن الجديد مباشرة من البرنامج الرئيسي حيث تظهر الأداة تلقائيان في صندوق الأدوات لنقوم بوضعها على الـForm دون الحاجة إلى تصريفها , وبعد أن ننجح في عملنا سوف نقوم بتصريف الكائن الجديد للاستخدام العام كما سيأتي لاحقاً .
البدء في مشروع يحتوي على كائن Activex : سوف نبدأ الآن بالتعامل مع هذا الكائن تحت التصميم المحلي :
قم بفتح Visual Basic واختر مشروع من نوع (Standard EXE) بعد ذلك سنقوم بإضافة كائن ActiveX إلى المشروع كما يلي :
تعرفنا قبل قليل على أن النافذة الخاصة بالتصميم أسمها user Control سنقوم بإضافتها كما يلي :
من قائمة Project اختر --- Add User Control , بعد ذلك ستظهر لك نافذة اختر منها UserControl , بعد ذلك سوف يظهر في متصفح المشاريع مجلد جديد واسمه
User Control تحت مجلد Forms ويحوي النافذة التي سوف نتعامل معها والتي تحمل اسم UserControl1 .
ولان بعد أن تعرفنا على كيفية فتح مشروع لتصميم المحلي أو( الخاص) سنبدأ بالتعرف على كيفية وضع هذه الأداة على الـForm1
لعمل ذلك : قم بإغلاق نافذة User Control ثم توجه (قم بفتح) إلى نافذة الـForm1
انظر إلى صندوق الأدوات سوف تلاحظ ظهور كائن جديد يحمل نفس أيقونة نافذة user control قم بوضع هذا الكائن على النموذج (Form1) بطبيعة الحال لا يحتوي الكائن على أي شيء لأننا لم نقم بعد بتصميمه , فقط أنضر إلى الخصائص التي يحتويها الكائن وهذه الخصائص افتراضية وهي :
Name
Causesvalidation
DragIcon
DragMode
Height
HelpContextId
Index
Left
TabIndex
TabStop
Tag
ToolTipText
Top
Visible
WhatsThisHelpID
Widthتعتبر هذه الخصائص الافتراضية للكائن ثابتة:
أي كثير الاستخدام وترك حرية إضافة خصائص جديدة للكائن أو مماثلة للخصائص التي تتبع نافذة التصميم أي كأن تضيف خاصية BackColor والتي تتحكم بلون خلفية الزر وبطبيعة الحال خلفية الزر هي عبارة عن خلفية نافذة التصميم usercontrol1 لذلك سنحتاج أن نبرمج خاصية جدية معتمدة على خاصية نافذة التصميم BackColor كي تظهر مع الخصائص السابقة للكائن , حتى يتمكن المبرمج من تغير لون خلفية الكائن .
لذلك نستطيع تقسيم (برمجة) الخاصية إلى :
1- خاصية تتعلق بنافذة التصميمusercontrol1 مثل :
ForColor, BackColor, Font , Enable , FullColor .... وغيرها من الخصائص .
2- خاصية تتعلق بأداة أخرى تم وضعها في نافذة التصميم :
أولاً يجب أن أنوه أن نافذة التصميم(usercontrol1) شبيه بنافذة النموذج (Form) من حيث وضع الكائنات عليها مثل زر أمر أو صندوق نص وغيرها من الكائنات , غير أن نافذة Form تظهر خصائص الكائن (مثلاً Command) بشكل منفصل عن خصائصها . بينما نافذة التصميم UserControl تدمج خصائص الكائن الموضع بداخلها مع الخصائص الجديدة تحت اسم الكائن المصمم ، فمثلاً لو قمنا بوضع صندوق نص(TextBox) على نافذة التصميم UserControl ثم بعد ذلك أغلقنا نافذة التصميم وفتحنا نافذة الـForm سنلاحظ ظهور صندوق النص في الأداة الجديدة وعند النظر إلى الخصائص نلاحظ عدم وجود الخصائص المتعلقة بصندوق النص , وقد يحتاج المبرمج مثلاً أن يستخدم هذا الكائن المنشأ كصندوق يتم به وضع كلمة السر , لذلك نحتاج نحن المصممون أن نتيح هذه الخاصية للمبرمج ليستخدمها حسب الرغبة , لذلك سوف نقوم ببرمجة خاصية تحمل اسم PasswordChar ونضيفها مع الخصائص المذكورة سابقاً , وهذه الخاصية سوف تسند أو تعطي للخاصية PasswordChar التابعة لصندوق النص .
3- خاصية جديدة من إنتاج المصمم :
وهذا النوع يحدد وضيفة عمل هذه الخاصية المصمم(المبرمج) للكائن فمثلاً :
لو قمنا بعمل خوارزمية معينة لتشفير النص , هذا العمل يتطلب أن نظهر خاصية للمبرمج (مستخدم الكائن) جديدة تحمل قيم معينة مثلاً True أو False ونسمي هذه الخاصية مثلاً Notation , وبهذا العمل أعطينا المستخدم للكائن خاصية جديدة تتحكم بتشفير النص وجعلنا لمستخدم لكائن حرية الاختيار إما أن يشفر النص أولا . و سوف بالطبع تظهر هذه الخاصية الجديدة مع الخصائص المذكورة سابقاً .
بعد أن تعرفنا على الخصائص وتقسيمها سوف نواصل الحديث عن بقية متطلبات الكائن الجديد في الدرس القادم والذي سنتحدث فيه عن الأحداث , فائدتها , وكيفية فهم عملها وكيف تم عملها . ثم نبدأ خطوة خطوة بإنتاج خصائص للكائن ..... الخ .
سنقوم بوضع أول مثال على برمجة الخصائص : نفس صندوق النص المستخدم في برنامج Sub7 أرفقت صورة توضح شكل صندوق النص والزر الذي سنقوم ببرمجته .
لذلك أتمنا من الأخوة الكرام البحث عن البرنامج الإصدار الأخير حتى نتعرف مع بعض عن الخصائص والأحداث التي استخدمت في إنتاج الأزرار وصناديق النص . حيث سيكون الشرح منصب على كيفية عملها .
في هذا الدرس تعرفنا على نافذة التصميم UserControlوالفرق بين نافذة UserControl و نافذة Form , وأخذنا نضرة سريعة على الخصائص وكيف ظهورها على الكائن ومدى الحاجة لها .
++++++++++++++++++