تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مقال- أفكار في الدوت نت كبف تصنع ColorPicker
#1
كاتب الموضوع : silverlight


بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

مقدمـــــة:


هناك الكثير من الأساليب التي من الممكن استخدامها لصناعة ColorPicker Control وتختلف هذه الأساليب طبقا لرؤية المبرمج ولو بحثت في النت جيدا عزيزي القارئ لسوف تجد الكثير من الأفكار لصناعة الكونترول الذي نتحدث عنه ألا وهو ColorPiker Control

غالبا ما يتم صناعة مثل هذا الكونترول باستخدام +GDI أو أيضا باستخدام API وهذا الأسلوب قد يحتاج الي أن يكون المبرمج لدية خبرات جيدة في استخدام +GDI ولربما يجد الكثير من المبرمجين صعوبة في التغلب علي المشاكل المصاحبة لعمليات الرسم المختلفة وأيضا التغلب علي متاهة استخدام دوال API

عموما يوجد هناك طرق كثيره لصناعة مثل هذا الكونترول لكن أيضا ومن المؤكد أن هناك طرق بسيطة جدا لصناعة مثل هذا الكونترول وهذا المقال سوف يوضح لك عزيزي القارئ كيفية صناعة ColorPicker Control ولكن بأبسط الطرق

ماذا نحتاج لنصنع ColorPicker Control

دراية بسيط بكيفية صتاعة Library
دراية بسيطة بعمليات الرسم +GDI
دراية بسيطة بكيفية إضافة Events الي الكونترول

الفكرة

تنحصر فكرة الكونترول في بناء كونترول بسيط سيعمل كأنه مستطيل وسوف نطلق علي PickerButton ومن ثم نضيف أي عدد من هذا الكونترول الي الكونترول الرئيسي وهو ColorPicker Control

الكلاس PickerButton

هذا الكلاس بسيط جدا وقد تم توريثه من الكلاس Control وقد تم إضافة بعض الصفات له وهي كالأتي:

1- الصفة Color Property وهي تمثل القيمة التي نريد استرجاعها لاحقا من داخل الكلاس ColorPicker

2- الصفة Selected Property وهي عبارة عن Boolean والهدف منها هو التأكد أن الكونترول قد تم اختياره بواسطة الماوس ومن ثم نرسم مستطيلا حول الكونترول بلون ما

3- الصفة Highlighted Property وهي عبارة عن Boolean والهدف منها هو التأكد أن الماوس موجود علي الكونترول وبالتالي نرسم الكونترول بلون ما وأيضا نرسم مستطيلا حول الكونترول بلون معين نختاره

الكلاس ColorPicker

هذا الكلاس تم توريثه أيضا من الكلاس Control وعلي سبيل المثال لا الحصر لقد تم إضافة الأكواد التالية اليه

1- الحدث SelectedColorChanged Event ولسوف يتم إطلاق هذا الحدث في كل مرة يتغير فيها اللون الذي نريد إسترجاعه من الكلاس PickerButton

2- تم إضافة الصفة Color Property وهي تعادل أو تمثل القيمة التي نريد استرجاعها لاحقا من داخل الكلاس ColorPicker ومن ثم نستخدم هذا اللون كيفما شئنا

3- أهم شئ أريد توضيحه هو كيفية أيجاد PickerButton الذي اختاره المستخدم عند النقر علي باتون ما .......... في الواقع الأمر في غاية البساطة بما أن الكلاس PickerButton ما هو إلا كونترول لذلك كل ماهو مطلوب بناء دالة بسيطة تقوم بالبحث في كل Controls الموجود داخل ColorPicker ومن ثم تسترجع PickerButton الذي قام المستخدم باختياره وشكل هذه الدالة كالأتي


كود :
Protected Function FindPickerButton(ByVal clr As Color) As PickerButton
For Each ctrl As Control In MyBase.Controls
Dim pickerBtn As PickerButton = TryCast(ctrl, PickerButton)
If ((Not pickerBtn Is Nothing) AndAlso (pickerBtn.Color = clr)) Then
Return pickerBtn
End If
Next
Return Nothing
End Function
كيف نستخدم ColorPicker

كل ما عليك عزيزي القارئ هو أن تقوم بعمل Build للكلاس ومن ثم تضيفه الي الفورم مثلا
ثم تطلق الحدث ColorPicker_SelectedColorChanged وداخل هذا الحدث تساوي اي لون تريده مع اللون الذي يتم اختياره

والكود التالي يوضح ذلك


كود :
Public Class Form1

Private Sub ColorPicker1_SelectedColorChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ColorPicker1.SelectedColorChanged
Me.Label1.BackColor = Me.ColorPicker1.Color
End Sub

End Class
في المرفقات ستجدون نسخة من الكلاس وكيفية استخدامه وأعتقد أن الأكواد المستخدمة بسيطة وسهلة فقط عليكم بدراستها جيدا ......... وبالتأكيد من يريد أن يستفسر عن اي شي يستطيع أن يكتب استفسارا

بالمرفقات نسختان أحدهما بالفبجوال 2010 والأخري بنسخة 2008 يمكنكم إنزال ما يناسبكم من أيهما


تقبلو تحياتي
أخوكم عمر


الملفات المرفقة
.rar   ColorPicker_Vs2008.rar (الحجم : 184.99 ك ب / التحميلات : 39)
.rar   ColorPicker_Vs2010.rar (الحجم : 215.91 ك ب / التحميلات : 47)
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف تصنع نسخة إحتياطية لملفات الداتا بيز silverlight 0 375 31-01-16, 12:37 AM
آخر رد: silverlight
  [مقال] تشغيل برمجيات الدوت نت بدون تنصيب النت فروم ويرك m0075 13 4,139 13-02-14, 08:29 PM
آخر رد: Omar Mekkawy
  تفقيط الارقام فى الدوت نت مبرمج أوتار 16 3,740 30-08-13, 01:01 AM
آخر رد: abatenovtch
  التــعامل مع cmd من خلال الدوت نت مبتدئ في الاحتراف 2 532 24-04-13, 07:58 PM
آخر رد: مبتدئ في الاحتراف
  تعلم كيف تصنع برنامج Notepad او مايسمى بالمفكرة AHMED`AMIN 8 1,903 10-10-12, 02:45 PM
آخر رد: مبرمج أوتار
  مقال- كيفية الاستغناء عن الداتا بيز التقليدية في برامجنا – ألجزء الأول RaggiTech 1 1,247 06-10-12, 12:23 AM
آخر رد: RaggiTech
  مقال- تطوير الكونترول Property Attributes الجزء الثالث RaggiTech 0 365 06-10-12, 12:20 AM
آخر رد: RaggiTech
  مقال- تطوير الكونترول Skin Control RaggiTech 0 531 06-10-12, 12:08 AM
آخر رد: RaggiTech
  مقال- كيف تصنع ملفات المساعدة Help Files وتربطها مع برنامجك RaggiTech 0 730 05-10-12, 07:30 PM
آخر رد: RaggiTech
  مقال- تطوير الفورم رسم الفورم باستخدام +GDI وتحريكه Moving و تغيير أبعاده Resize RaggiTech 2 879 05-10-12, 07:00 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم