14-01-16, 03:03 PM
(آخر تعديل لهذه المشاركة : 14-01-16, 03:19 PM {2} بواسطة silverlight.)
السلام عليكم ورحمة الله و بركاته
في هذا الموضوع سوف نبني كونترول بسيط و الغالبية منكم يتذكرون LineControl القديم الذي كان موجودا في النسخ القديمة من الفيجوال بيسك 6 و ما قبله تقريبا علي ما اتذكر
و لقد كتبت هذا الموضوع فقط لتأكيد أننا من الممكن أن نستخدم Action Delegates في اطلاق حدث بدون استخدام اي EventHandler
والهدف هنا هو تأكيد الفكرة التي تم طرحها في اللينك التالي
Generic Delegates - Func and Action
و علي العموم الكونترول شكله جيد و مناسب للإستخدام في اي من برامجكم
صفات الكونترول :
LineColor و هي صفة عبارة عن لون
تستطيع منها تغيير اللون المستخدم في عملية رسم الخط
LinePosition وهي صفة عبارة عن Enumeration
تستطيع منها تحديد مكان رسم الخط إما الي الأسفل او في المنتصف أو في القمة
و لمستخدمي نسخةالدوت نت 3.5 فيما فوق يجب عليهم استخدام النسخة V1.1 الموجودة بالمرفقات
أما مستخدمي الدوت نت الاقل من نسخة 3.5 يجب عليهم استخدام النسخة V1.0 الموجودة بالمرفقات
الفارق بين النسختين يظهر في الكود التالي
حيث هنا يتم هنا اطلاق الحدث باستخدام Action Delegate
الكود هنا هو نفس الكود اعلاه ولكن يتم اطلاق حدث بالاسلوب التقليدي
الكود مكتوب باستخدام الفيجوال استوديو 2015
تقبلو تحياتي
في هذا الموضوع سوف نبني كونترول بسيط و الغالبية منكم يتذكرون LineControl القديم الذي كان موجودا في النسخ القديمة من الفيجوال بيسك 6 و ما قبله تقريبا علي ما اتذكر
و لقد كتبت هذا الموضوع فقط لتأكيد أننا من الممكن أن نستخدم Action Delegates في اطلاق حدث بدون استخدام اي EventHandler
والهدف هنا هو تأكيد الفكرة التي تم طرحها في اللينك التالي
Generic Delegates - Func and Action
و علي العموم الكونترول شكله جيد و مناسب للإستخدام في اي من برامجكم
صفات الكونترول :
LineColor و هي صفة عبارة عن لون
تستطيع منها تغيير اللون المستخدم في عملية رسم الخط
LinePosition وهي صفة عبارة عن Enumeration
تستطيع منها تحديد مكان رسم الخط إما الي الأسفل او في المنتصف أو في القمة
و لمستخدمي نسخةالدوت نت 3.5 فيما فوق يجب عليهم استخدام النسخة V1.1 الموجودة بالمرفقات
أما مستخدمي الدوت نت الاقل من نسخة 3.5 يجب عليهم استخدام النسخة V1.0 الموجودة بالمرفقات
الفارق بين النسختين يظهر في الكود التالي
حيث هنا يتم هنا اطلاق الحدث باستخدام Action Delegate
PHP كود :
<Browsable(True)>
<Category("Cairo")>
<DefaultValue(GetType(LinePosition), "Middle")>
Public Property LinePosition As LinePosition
Get
Return _position
End Get
Set(value As LinePosition)
If _position <> value Then
Dim positionAction As Action(Of LinePositionChangedEventArgs) = Sub()
_position = value
Invalidate()
End Sub
Dim args As New LinePositionChangedEventArgs(_position)
positionAction(args)
End If
End Set
End Property
الكود هنا هو نفس الكود اعلاه ولكن يتم اطلاق حدث بالاسلوب التقليدي
PHP كود :
<Browsable(True)>
<Category("Cairo")>
<DefaultValue(GetType(LinePosition), "Middle")>
Public Property LinePosition As LinePosition
Get
Return _position
End Get
Set(value As LinePosition)
If _position <> value Then
_position = value
Dim args As New LinePositionChangedEventArgs(_position)
OnPositionchanged(args)
End If
End Set
End Property
الكود مكتوب باستخدام الفيجوال استوديو 2015
تقبلو تحياتي