الدرس الثالث
استخدام المواصفات في عمليات الإنشاء
في هذا الدرس سنقوم بتطوير ألأداة التي صنعناها سابقا الأداة (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") > _
----------------------------------------------------