الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لائحة (ListBox) ببنود ملونة و لاختيار الألوان

بدأه najy_zl في 6 ديسمبر 2009 · 4 رد · 2,849 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم...

في المرفقات مكون لائحة (ListBox) قمت أساساً بتصميمه لاختيار الألوان، كما يمكن استعماله كلائحة عادية (ببنود نصية) ملونة.

post-28631-1260055335788_thumb.jpg

استعمال المكون 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 و بها صفحة واحدة بعنوان "تخصيص".

post-28631-12600554513279_thumb.jpg

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)

نرجو الاستفادة و السلام.

Color_List_Controls.rar

تم تعديل هذه المشاركة بواسطة najy_zl في 6 ديسمبر 2009 في 23:46

2

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#2

شكرا جزيلا مشرفنا الغالي ...

اداة رائعه بحق ..

حاولت ان اسجل الاداة و قمت بتسجيلها بنجاح و بعدها حاولت ان استخدمها في الاكسس 2003 و لكن لا تظهر نافذة الخصائص الخاصة بالاداة ..؟

هل هذه الاداة خاصة للعمل في بيئة الفيجول بيسك 6 فقط ..

و هل من سبيل لاستخدامها في الاكسس..؟

تحياتي

post-157080-12622582839684.jpg

#3

السلام عليكم...

جاءني تنبيه من أحد الإخوة إلى أنه لا توجد طريقة للتعامل مع البنود (إضافة، تعديل، حذف) أثناء التشغيل (بالكود)!!! لا أدري كيف فاتني ذلك. ربما لأني كنت مستعجلاً على الانتهاء من تصميم الأداة.

على أية حال قمت بالتعديلات اللازمة و أضفت إلى المكون الوظائف التالية (و النسخة المعدلة في المرفقات):

الوظيفة AddItem: لإضافة بند جديد إلى نهاية القائمة أو إدراج بند بند جديد في موضع معين ضمن القائمة، وتحتاج إلى 3 بارامترات:

* البارامتر الأول AColor يحدد لون البند.

* البارامتر الثاني AText (اختياري) يحدد نص البند.

* البارامتر الثالث AIndex (اختياري، و قيمته الافتراضية -1) يحدد موضع إدراج البند. إذا تم إهماله أو كانت قيمته أصغر من الصفر أو أكبر من رقم آخر بند موجود في القائمة فإن البند الجديد تتم إضافته في آخر القائمة، و غير ذلك فإن البند الجديد تتم إضافته في الموضع المحدد بهذا البارامتر.

* الوظيفة AddItem تعيد رقم موضع البند الجديد. كما يمكن استعمال الوظيفة NewItemIndex (المذكورة فيما بعد) للحصول على رقم البند الذي تمت إضافته مؤخراً.

الوظيفة ReplaceItem: لاستبدال (تعديل) بند، و تحتاج إلى 3 بارامترات:

* البارامتر الأول AIndex يحدد رقم البند المطلوب تعديله. إذا كانت قيمة هذا البارامتر خارج نطاق أرقام البنود يحدث خطأ.

* البارامتر الثاني AColor يحدد اللون الجديد للبند.

* البارامتر الثالث AText (اختياري) يحدد النص الجديد للبند.

الوظيفة RemoveItem: لإزالة (حذف) بند من القائمة، و تحتاج إلى بارامتر واحد هو البارامتر AIndex الذي يحدد رقم البند المطلوب حذفه. إذا كانت قيمة هذا البارامتر خارج نطاق أرقام البنود يحدث خطأ.

الوظيفة ClearItems: لحذف كافة البنود من القائمة (إفراغ القائمة).

الوظيفة NewItemIndex: تعيد رقم (ترتيب) آخر بند تمت إضافته باستعمال الوظيفة AddItem إذا كانت آخر عملية تمت على القائمة هي AddItem. هذه الوظيفة تعيد -1 إذا لم يتم استعمال الوظيفة AddItem سابقاً أو إذا تم حذف أو تعديل أي بند أو تم إفراغ القائمة من البنود أو ملؤها باستعمال الوظيفة LoadQBColors.

------------------------------------

*** يجب التنويه إلى أن المكون TColorListBox هو مكون مصمم بالأساس لاختيار الألوان و ليس كـ ListBox عادي (رغم إمكانية استخدامه كذلك)، و لهذا فهو لا يحتوي مثلاً على خاصية Sorted لفرز البنود، أو الخاصية MultiSelect لاختيار أكثر من بند في نفس الوقت.

------------------------------------

بالنسبة إلى سؤال الأخ مستر عربي: نعم هي مبدئياً للاستعمال داخل VB6 لأني لم أرفق الملف الخاص بالـ Property Page للأداة. اصبر علي بضعة أيام حتى أجهز Package كاملة لها.

------------------------------------

المرفقات:

Color_List_Controls_2.rar

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#4

شكرا لك و انا بالانتظار

post-157080-12622582839684.jpg

#5

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

مجهود عظيم أخي العزيز :najy_zl

و لكن لتعم الإستفاده أكثر يجب وضع السورس كود نرجو منك وضعه عما قريب .

و السلام ختام ...

تم تعديل هذه المشاركة بواسطة captinflent في 7 ديسمبر 2009 في 17:23

السلام على من إتبع السلام وخشي وجه ربه ذو الجلال والإكرام

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…