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

هل يمكن وضع الفلكس في متغير و اتعامل مع المتغير

بدأه أبو زيد في 25 مايو 2008 · 3 رد · 902 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هل يمكن وضع الفلكس في متغير و اتعامل مع المتغير

#2

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

لا أدري بالضبط ما الذي تقصده بالـ "فلكس" لكني أعتقد أنه الـ Flex Grid.

على أية حال يوجد من هذا المكون نسختان في VB هما MSFlexGrid و MSHFlexGrid و لا يهمنا هنا مالفرق بينهما، إنما إجابةً على سؤالك فإنه يمكننا وضع أي مكون في متغير و استعمال ذلك المتغير تماماً مثل الاسم الأصلي للمكون، و يتم ذلك كالتالي:

1. تعريف المتغير بإحدى الصيغتين التاليتين:

Dim MyControl As Control	' بتعريفه كمكون بشكل عام
' أو
Dim MyControl As MSFlexGrid	' or MSHFlexGrid or TextBox or Label, .... بتحديد نوع المكون

الطريقة الآولى As Control تسمى طريقة الربط المتأخر (Late Binding) لأن المصرف (Compiler) لا يستطيع أن يعرف نوع المكون الذي يمثله المتغير (MyControl في هذا المثال) إلا عند التنفيذ (Run) و لهذا ستلاحظ عند كتابة الكود أنك عندما تكتب نقطة (dot) بعد اسم المتغير فإنه لن تظهر لك قائمة الخصائص و المناهج لأن المصرف لا يعرف طبيعة المكون الذي يمثله المتغير.

أما الطريقة الثانية As MSFlexGrid (أو أي اسم نوع في VB) فإنها تسمى طريقة الربط المبكر (Early Binding) و ذلك لأن المصرف يعرف مسبقاً نوع المكون الذي يمثله المتغير، و بالتالي فإنه عند كتابة نقطة بعد اسم المتغير ستظهر لك قائمة بخصائص و مناهج المكون الذي يمثله المتغير.

2. إسناد المكون إلى المتغير:

Set MyControl = MSFlexGrid1
' .
' .
MsgBox MyControl.Cols	' مثلاً هذه الجملة تعرض عدد الأعمدة في الشبكة باستعمال اسم المتغير

** ملاحظة أخيرة: حسب تعليمات Visual Basic فإنه عند تمرير مكون إلى دالة أو إجراء كبارامتر فإنه يستحسن تعريف البارامتر كـ Control و ليس تحديد نوعه (مع أني لا أعرف السبب).

و ها هنا مثال لتمرير مكون إلى إجراء. هذا الإجراء يقوم بتحديد (تظليل) كامل النص إذا كان المكون الممرر إليه هو TextBox:

Public Sub SelectAll(AControl As Control)
	If TypeOf AControl Is TextBox Then
		AControl.SelStart = 0
		AControl.SelLength = Len(AControl.Text)
	End If
End Sub

لاحظ استعمال TypeOf لمعرفة نوع المكون الذي يمثله البارامتر AControl.

يمكنك استدعاء هذا الإجراء من معالج الحدث GotFocus لأي مربع نص (TextBox) لتحديد كامل النص فيه عند دخول المؤشر إليه.

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

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

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

#3

شيء جميل .......... و شرح وافي

الله يوفقك

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