2009/08/05

موضوع الوراثة في الدوت نت - الدرس الأول


الدرس الأول

اشتقاق فئة وراثية


سنقوم بإنشاء أداه جديدة تخصنا ، بحيث سنجعلها ترث أداة الويندوز 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 وهو: استخدام التطبيقات الوراثية
تصميم المهندس/ ماجد حمود القديمي
 للأستفسار يرجى التواصل
على الإيميل : Majedsoft@hotmail.com

2009/08/04

موضوع الوراثة في الدوت نت - الدرس الثاني

الدرس الثاني

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



نلتقي في الدرس الثالث: وهو استخدام المواصفات
تصميم المهندس/ ماجد حمود القديمي للأستفسار إيميل : Majedsoft@hotmail.com

2009/08/03

موضوع الوراثة في الدوت نت - الدرس الثالث

الدرس الثالث

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

2009/08/02

موضوع - الوراثة في الدوت نت - الدرس الرابع والأخير

الدرس الرابع

تجهيز الأداة للاستخدام العام

لتجهيز الأداة 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 وستلاحظ أدراج الأداة مباشره في النافذة كما في الشكل التالي :

ثم أختر زر الأمر Ok ليتم أدراجها في نافذة عرض الكائنات.
------تم وبحمد الله------------

2009/08/01

مرفقات تطبيق سلسلة دروس الوراثة.

مرفقات تطبيقات سلسلة دروس الوراثة
رابط تحميل المرفقات
تصميم المهندس/ ماجد حمود القديمي
للأستفسار يرجى المراسلة
 الأيميل : Majedsoft@hotmail.com