تصميم المهندس/ ماجد حمود القديمي للأستفسار
إيميل : Majedsoft@hotmail.com
الدرس الأول اشتقاق فئة وراثية سنقوم بإنشاء أداه جديدة تخصنا ، بحيث سنجعلها ترث أداة الويندوز Textbox ، لكي تعمل عملها بالإضافة لبعض التطويرات على أداتنا الجديدة فقط ما عليك إلا تتبع الأتي : · أفتح مشروع Application Widows جديد ، باسم TextProject ، أضف فئة Class جديدة من نافذة إضافة عنصر جديد ، أو من القائمة Project أختر Add Class ، وقم بتسميه الفئة TextMaj.vb . · أكتب الشيفره التالية في محرر شيفره الفئة TextMaj ، والتي ستقوم بتوريث فئتنا المشتقة كل ما يتعلق بالفئة الأساسية TextBox كما يلي : Public Class TextMaj Inherits TextBox End Class قم بعمليه البناء Build من القائمة Build أختر Build Solution ، ليتم أضافه أداتنا الجديدة TextMaj إلى أعلى نافذة الكائنات ، قم بإضافتها على النموذج Form1 لتشاهد عملها المشابه تماما للكائن TextBox . ----------------------------------------------------------- نلتقي في الدرس رقم 2 وهو: استخدام التطبيقات الوراثية |
الدرس الثاني استخدام التطبيقات الوراثية أولا: إنشاء دالة: سنقوم بتطوير أداتنا الجديدة (TextMaj) بحيث تحتوي على دالة باسم (ArabicLang) تعمل على تحديد طريقه إدخال النص أما بالصيغة العربية أو الإنجليزية كما يلي : Public Class TextMaj Inherits TextBox Public Function ArabicLang(ByVal wl As Boolean) As Boolean If wl = True Then 'تغيير لغة لوحة المفاتيح إلى اللغة العربية InputLanguage.CurrentInputLanguage = InputLanguage. _ InstalledInputLanguages().Item(1) MyBase.TextAlign = HorizontalAlignment.Right Else ' تغيير لغة لوحة المفاتيح إلى اللغة الانجليزية InputLanguage.CurrentInputLanguage = InputLanguage. _ InstalledInputLanguages().Item(0) MyBase.TextAlign = HorizontalAlignment.Left End If End Function End Class إلى الآن أصبح لدينا داله ArabicLang ولتطبيقها في أي أجراء مثلا في شيفره النموذج في حدث التحميل كالتالي : ' العربية اللغة لاختيار TextMaj1.ArabicLang(True) ' الانجليزية اللغة لاختيار TextMaj1.ArabicLang(False) ثانياً:إنشاء خاصية جديدة : سنقوم بإنشاء خاصية جديدة باسم (SelectLanguage) وعملها نفس عمل الدالة السابقة بحيث يتم عن طريق هذه الخاصية تحديد لغة إدخال النصوص، وسوف تأخذ قيمتين القيمة الأولــى هي (Arabic) لإختيار أسلوب اللغة العربية، والقيمة الثانية هي (Englech) لاختيار أسلوب الإنجليزية، ولكي يتم ذلك سنستخدم التركيب من نوع (Enum) ليحمل القيمتين، ثم نعرف متغير من نفس نوع بيانات التركيب ليعود بأحد القيم المختارة ، وتعريف الخاصية أيضا من نفس نوع بيانات التركيب ، أنظر الشيفره التالية : Public Class TextMaj Inherits TextBox '--وسوف نسند فيها قيمتين عربي وإنجليزي Enum تركيب من نوع Enum sellang Arabic Englech End Enum '--من نوع التركيبة نفسها ليأخذ واحدة من القيم sel-هنا تعريف متغير Private sel As sellang '--من هنا تبدءا الخاصية Property SelectLanguage() As sellang '--هنا سيتم إعادة القيمة التي يتم تحديدها في الخاصية Get Return (sel) End Get '--في هذا الجزء من الخاصية يتم تحديد أو اختيار القيمة من الخاصية Set(ByVal value As sellang) sel = value If sel = sellang.Arabic Then InputLanguage.CurrentInputLanguage = InputLanguage. _ InstalledInputLanguages().Item(1) MyBase.TextAlign = HorizontalAlignment.Right Else InputLanguage.CurrentInputLanguage = InputLanguage. _ InstalledInputLanguages().Item(0) MyBase.TextAlign = HorizontalAlignment.Left End If End Set End Property End Class أما طريقه استدعاء تنفيذ الخاصية تتم بطريقتين الأولى عبر الشيفره وقت التنفيذ كما يلي : TextMaj1.SelectLanguage = TextMaj.sellang.Arabic والطريقة الثانية: عبر ضبط الخصائص في نافذة الخصائص التابعة للكائن وقت التصميم فعند عمليه البناء Build سيتم إضافة الخاصية التي صنعناها في نافذة الخصائص كما في الشكل التالي: نلتقي في الدرس الثالث: وهو استخدام المواصفات |
الدرس الثالث استخدام المواصفات في عمليات الإنشاء في هذا الدرس سنقوم بتطوير ألأداة التي صنعناها سابقا الأداة (TextMaj) بحيث نقوم بوضع شرح او تفصيل توضيحي للمبرمج عند التركيز على الخاصية (SelectLanguage) التي تم أنشأها في الدرس الثاني، وهنا سنستخدم مجال الأسماء ( System.ComponentModel) الذي يوفر لنا مجموعه من المواصفات، ومنها سنأخذ المواصفة (Description) كما يلي: قم بكتابة المواصفة التالية قبل إنشاء الخاصية . _ <("خاصية تحديد لغة إدخال النصوص")Description > '- استدعاء مجال الأسماء الخاص بعمل مواصفة Imports System.ComponentModel Public Class TextMaj Inherits TextBox '--وسوف نسند فيها قيمتين عربي وإنجليزي Enum تركيب من نوع Enum sellang Arabic Englech End Enum '--من نوع التركيبة نفسها ليأخذ واحدة من القيم sel-هنا تعريف متغير Private sel As sellang '--من هنا تبدءا الخاصية '--هنا سنضيف وصف الخاصية ---------------هنا ضع نص المواصفة --------- Property SelectLanguage() As sellang '--هنا سيتم إعادة القيمة التي يتم تحديدها في الخاصية Get Return (sel) End Get '--في هذا الجزء من الخاصية يتم تحديد أو اختيار القيمة من الخاصية Set(ByVal value As sellang) sel = value If sel = sellang.Arabic Then InputLanguage.CurrentInputLanguage = InputLanguage. _ InstalledInputLanguages().Item(1) MyBase.TextAlign = HorizontalAlignment.Right Else InputLanguage.CurrentInputLanguage = InputLanguage. _ InstalledInputLanguages().Item(0) MyBase.TextAlign = HorizontalAlignment.Left End If End Set End Property End Class وسوف يتم عرض النص الذي سيصف الخاصية تبعنا بمجرد اختيارها من نافذة الخصائص وذلك أسفل نافذة الخصائص كما في الشكل التالي: وإليك بعض أهم المواصفات التي تهمنا في تجهيز أداتنا بشكل كامل: المواصفة DefaultProperty : ويتم فيها تحديد الخاصية الافتراضية التي سيتم تحديدها في نافذة الخصائص بمجرد تنزيل الأداة على النموذج . _ < ("DefaultProperty ("Text > المواصفة DefaultEvent : ويتم فيها تحديد الحدث الافتراضي الذي سيتم فتح صفحته في نافذة محرر الشيفره بمجرد الدخول لصفحه شيفره الأداة . _ <(" DefaultProperty ("Text"), DefaultEvent ("Click) > المواصفة ToolboxBitmap : ويتم فيها تحديد رمز أو أيقونه للأداة ، ToolboxBitmap ("c:\fileName.Ico") > _ ---------------------------------------------------- نلتقي في الدرس الرابع: تجهيز الأداة للاستخدام العام |
الدرس الرابع تجهيز الأداة للاستخدام العام لتجهيز الأداة TextMaj للاستخدام العام يجب تحويلها إلى ملف من نوع Dll ، لكي نتمكن من استخدامها في أي مشروع، ولا يتم عمل هذا إلا باستخدام تطبيق المشروع Class Library، وكوننا قمنا باستخدام التطبيق Windows Application سنقوم بتحويل التطبيق إلى تطبيق Class Library وذلك من نافذة خصائص المشروع، وفي الخانة Application Type (نوع المشروع) قم باختيار التطبيق Class Library ، ثم من القائمة Build أختر السطر Configuration Manager ، وقم باختيار نوع التحرير Release من مربع الاختيار Configuration ، ثم من قائمه البناء (Build ) أيضا أختر عمليه البناء Build TextProject للمشروع ككل TextProject وهذا هو أسم المشروع الذي أشئناه سابقا، وبعد عمليه بناء المشروع سيتم إضافة ملف من نوع Dll بنفس أسم المشروع في ملف Bin ستجده . تبقى استخدام الأداة في مشروع جديد أخر، ويتم ذلك بالنقر على صندوق الأدوات بزر الفأرة الأيمن ومن ثم اختيار السطر Choose Items ، ليتم عرض نافذة إضافة الأدوات ومنها أختر زر الأمر Browse ومن ثم قم بتحديد الملف Dll وستلاحظ أدراج الأداة مباشره في النافذة كما في الشكل التالي : ------تم وبحمد الله------------ |