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