السلام عليكم...
في المرفقات مكون لائحة (ListBox) قمت أساساً بتصميمه لاختيار الألوان، كما يمكن استعماله كلائحة عادية (ببنود نصية) ملونة.
استعمال المكون TColorListBox في Visual Basic
1. انسخ الملف ColorListControls.ocx إلى المجلد System32.
2. من القائمة "ابدأ" (Start) في Windows اختر الأمر Run ثم نفذ الأمر التالي:
regsvr32 ColorListControls.ocx
3. في Visual Basic اختر الأمر Components من القائمة Project (أو اضغط Ctrl+T).
4. في نافذة المكونات ابحث عن البند DSC Color selection controls و قم بتحديده ثم انقر OK.
* ستتم إضافة مكون اسمه TColorListBox إلى صندوق الأدوات.
تعبئة البنود في المكون TColorListBox
1. بعد وضع المكون TColorListBox على الـ Form انقر على الخاصية Custom في نافذة الخصائص. ستظهر نافذة Property Pages و بها صفحة واحدة بعنوان "تخصيص".
2. انقر الزر "تحديد لون البند" لاختيار اللون.
3. بشكل اختياري يمكنك كتابة نص البند في خانة "نص البند المحدد".
4. انقر الزر "إضافة" لإضافة البند إلى القائمة.
* كرر الخطوات السابقة حسب ما تريد من بنود.
* يمكنك استعمال الزر "استبدال" لتعديل البند المحدد.
* يمكنك استعمال الزر "حذف" لحذف البند المحدد.
* إذا أردت استعمال الألوان الستة عشر الأساسية فإنه يمكنك النقر على الزر "عربي" لإدراج تلك الألوان بأسماء عربية (أسود، أزرق، أحمر، ... إلخ)، أو انقر على الزر "إنجليزي" لإدراج تلك الألوان بأسماء إنجليزية (Black، Blue، Red، ... إلخ)
* انقر الزر "Apply" أو الزر "OK".
الخصائص (Properties):
الخاصية ColorTextAlignment: تحدد محاذاة نص البند، و تأخذ إحدى القيم التالية:
vbLeftJustify = 0: محاذاة إلى اليسار.
vbRightJustify = 1: محاذاة إلى اليمين.
vbCenter = 2: توسيط.
* الافتراضي vbRightJustify = 1 أي محاذاة إلى اليمين.
الخاصية EmptyListDefaultColor: تحدد اللون الافتراضي المستعمل في حالة كون القائمة فارغة (لا تحتوي على بنود). يمكنك كتابة القيمة العددية للون في نافذة الخصائص، أو اختيار اللون من خلال نافذة التخصيص (Custom) أمام البند "اللون الافتراضي للقائمة الفارغة".
* الافتراضي أبيض (16777215).
الخاصية Font: مثل الخاصية Fonr المعروفة في بقية المكونات (تحديد اسم و خصائص الخط للمكون).
* مهم: ارتفاع كل بند في القائمة يتحدد تلقائياً بنوع و حجم هذا الخط.
الخاصية ItemIndex: تحدد رقم البند المختار حالياً أو المطلوب اختياره (ترقيم البنود يبدأ بالصفر). الافتراضي -1 أي لا يوجد بند مختار.
الخاصية ItemTextKind: تحدد ما هو النص المستعمل كنص للبند. من النوع TItemTextKind و يمكن أن تأخذ إحدى القيم التالية:
itkNoText = 0: البنود تظهر من غير نصوص (ألون فقط).
itkUserText = 1: نص البند هو النص الذي يتم تحديده عند إدراج البنود في نافذة التخصيص.
itkHexaColorValue = 2: نص البند عبارة عن قيمة لونه بالترقيم الستعشري أو السداسي عشر (Hexadecimal) مسبوقاً بعلامة $.
itkDeciColorValue = 3: نص البند عبارة عن قيمة لونه بالترقيم العشري (Decimal) المعروف.
itkRGBColorValue = 4: نص البند عبارة عن قيمة لونه معبراً عنها بنظام RGB أي هكذا (R, G, B) أي (أحمر، أخضر أزرق).
* الافتراضي itkUserText = 1 أي أن نص البند هو النص الذي يتم تحديده عند إدراج البنود في نافذة التخصيص (Custom).
الخاصية RightToLeft: تحدد بشكل أساسي موضع شريط التدرج (ScrollBar). إذا كانت قيمتها True فإن شريط التدرج يظهر على الجانب الأيسر، و إذا كانت False فإن شريط التدرج يظهر على الجانب الأيمن.
الخاصية RightToLeftItems: تحدد اتجاه النص للبنود. إذا كانت True فإن اتجاه النص يكون من اليمين-إلى-اليسار (عربي)، و إذا كانت False فإن اتجاه النص يكون من اليسار-إلى-اليمين (لاتيني).
الوظائف (Methods):
الوظيفة ItemColor: تعيد لون البند الذي نحدده لها برقمه (Index).
الوظيفة ItemCount: تعيد عدد البنود في القائمة.
الوظيفة ItemText: تعيد نص البند الذي نحدده لها برقمه (Index).
الوظيفة LoadQBColors: تقوم بتعبئة القائمة بالألوان الستة عشر الأساسية. هذه الوظيفة لها بارامتر واحد اسمه WhichNames من النوع TQBCNameLanguage و يحدد طريقة تسمية الألوان كالتالي:
* إذا كانت قيمة البارامتر WhichNames هي qnlArabic = 0 فإن أسماء الألوان الستة عشر تكون بالعربي.
* إذا كانت قيمة البارامتر WhichNames هي qnlEnglish = 1 فإن أسماء الألوان الستة عشر تكون بالإنجليزي.
الوظيفة SelectedColor: تعيد قيمة اللون للبند المحدد حالياً. إذا كانت القائمة فارغة أو لم يكن هناك بند محدد (ItemIndex = -1) فإنها تعيد اللون المحدد بالخاصية EmptyListDefaultColor.
الوظيفة SelectedText: تعيد نص البند المحدد حالياً. إذا كانت القائمة فارغة أو لم يكن هناك بند محدد (ItemIndex = -1) فإنها تعيد نصاً فارغاً (Empty string).
الأحداث (Events):
الحدث OnItemClick: يحدث عند النقر على أحد البنود في القائمة. يتضمن هذا الحدث 3 بارامترات:
* البارامتر ColorIndex: يمثل رقم البند الذي تم النقر عليه (ترقيم البنود يبدأ بالصفر).
* البارامتر ColorValue: يمثل لون البند الذي تم النقر عليه.
* البارامتر ColorText: يمثل نص البند الذي تم النقر عليه.
الحدث onkeydown: مثل الحدث KeyDown لبقية المكونات.
الحدث onkeyup: مثل الحدث KeyUp لبقية المكونات.
-------------------------------------------------------------------
تحتوي المرفقات أيضاً على ملف نصي به الشرح المذكور أعلاه حول كيفية استخدام الأداة.
المرفقات: (ملاحظة - قم بتحميل النسخة المعدلة في المشاركة رقم 3)
نرجو الاستفادة و السلام.
