أشرطة التمرير
والمنطق ورسائل الإدخال والإخراج
هل
استخدمت برنامج معالج كلمات مثل Word
؟ هل لاحظت وجود شريط تمرير أسفل الصفحة وعلي
يسارها أو يمينها ؟ .
خمن
إجابة الأسئلة
هل
توجد قيمة دنيا لشريط التمرير ؟
هل
يوجد قيمة عليا لشريط التمرير ؟
ماذا
يحدث لو نقرت السهم الطرفي ؟
ما
الفرق بين نقر السهم الطرفي وسحب مؤشر
الشريط؟
هل
يوجد عنوان لشريط التمرير ؟
خمن
الأحداث التي يوفرها شريط التمرير .
الواقع
أن شريط التمرير عبارة عن مؤشر يتحرك في إطار
و يكون في بدايته و نهايته سهم طرفي ، وهو
إما أفقي أو رأسي ، و مؤشر الشريط يشير للمدى
الذي بلغه متغير معين .
ويعتبر
شريط التمرير ضروري للإشارة إلي موضع نص في
أداة النص ، وهو يعتبر مؤشر لبعض المتغيرات
مثل درجة الحرارة مثلاً أو الارتفاع و
الانخفاض وغيرها ، وأهم ما يميزه هو وجود قيمة
صغري Min
يبدأ منها ولا يتجاوزها لقيمة أقل ، كما أن له
قيمة كبري لا يتجاوزها المؤشر ، كما أنه يوجد
في كل طرف سهم يؤدي نقره لتحرك المؤشر مسافة
محددة باتجاه ذلك الطرف ، كما يمكن سحب المؤشر
ووضعه عند آي نقطة من جسم المؤشر .
خواص
شريط التمرير Scroll Bar Control Properties
:
وظيفتها
|
اسم
الخاصية
|
وهي تحدد الاسم الذي سوف
يتم تسمية أداة التمرير به واقترح أن
يكون hsb
للشريط الأفقي ، و vsb
لشريط التمرير الرأسي .
|
Name
|
وهي تحدد الحد الأقصى الذي
سوف يبلغه المؤشر ، وتقبل عدد صحيح
ويتراوح بين ±
32767
|
Max
|
وهي
تحدد الحد الأدنى الذي سوف يبلغه المؤشر
، وهي تقبل عدد صحيح يتراوح بين
±
32767
|
Min
|
وهي
تحدد الفترة التي سوف يقفزها المؤشر لدى
نقر جسم أو مسار المؤشر ، وهي تقبل عدد
صحيح .
|
LargeChange
|
وهي
تحدد الفترة التي سوف يقفزها المؤشر لدي
نقر السهم الطرفي ، وهي تقبل عدد صحيح .
|
SmallChange
|
وهي تحدد
، وتختزن موضع المؤشر من جسم الشريط ،
ويجب أن تكون محصورة بين القيمة الصغري
والقيمة القصوي أو الكبري
|
Value
|
وتحدد
بعد حافة شريط التمرير اليسرى عن حافة
نافذو المشروع اليسرى .
|
Left
|
وتحدد ارتفاع زر التمرير
حسب وحدة القياس .
|
Height
|
وتحدد بعد حافة شريط
التمرير العليا عن حافة نافذة المشروع
العليا .
|
Top
|
وتحدد اتجاه حركة شريط
التمرير ويأخذ قيمتين True
وتعني اتجاه حركة المؤشر من اليمين
لليسار ، والقيمة False
وهي تجعل اتجاه حركة المؤشر من اليسار
لليمين .
|
RightToLeft
|
وهي تأخذ قيمتين وهما True
وهنا يكون الشريط مرئياً علي نافذة
المشروع، أما القيمة False
تجعل الشريط غير مرئي
، وتعمل في طور التشغيل .
|
Visible
|
أهم
الأحداث :
وصف الحدث
|
الحدث
|
وهو يقع لدي سحب مؤشر شريط
التمرير باتجاه أحد الطرفين
|
Scroll
|
وهو حدث يقع لدي نقر أحد
الأسهم أو سحب مؤشر شريط التمرير باتجاه
أحد الطرفين .
|
Change
|
مثال
:
لنفرض
أننا نريد استخدام شريط تمرير
رأسي لكي يشير إلي درجة الحرارة المئوية
والمحصورة بين 0 ، 100 ، علي أن تكون القفزة
الصغرى 1 ، والقفزة الكبرى 10 ، وإظهار قيمة
مؤشر زر التمرير في خانة نص ، والتي سوف تخصص
للإدخال ، مع تعريف خانة النص بأداة عنوان
وتعريف القيمة الصغرى والقيمة الكبرى لشريط
التمرير بأداة عنوان ، مع تخصيص زر للخروج.
من
تأمل المسألة يتضح أننا بحاجة إلي 3 أدوات
عنوان ، وشريط تمرير ، وأداة نص ، و زر أوامر ،
بحيث يبدو شكل نافذة المشروع كما يلي :
خصص
أسماء الأدوات السابقة كما يلي :
أداة
العنوان Label1
lblMax
|
Name
|
Center
|
Alignment
|
Times New Roman
|
Font
|
True
|
RightToLeft
|
100
|
Caption
|
أداة
العنوان Label2
lblMin
|
Name
|
Center
|
Alignment
|
Times New Roman
|
Font
|
True
|
RightToLeft
|
0
|
Caption
|
أداة
العنوان Label3
lblCent
|
Name
|
Center
|
Alignment
|
Times New Roman
|
Font
|
True
|
RightToLeft
|
درجة الحرارة
|
Caption
|
الأداة
Text1
txtCent
|
Name
|
Center
|
Alignment
|
Times New Roman
|
Font
|
True
|
RightToLeft
|
|
TEXT
|
3
|
MaxLength
|
False
|
Multilines
|
أداة
زر الأوامر Command1
CmdExit
|
Name
|
Center
|
Alignment
|
Times New Roman
|
Font
|
True
|
RightToLeft
|
خروج
|
Caption
|
أداة
شريط التمرير
قيمتها
|
الخاصية
|
vsbCent
|
Name
|
100
|
Max
|
0
|
Min
|
1
|
LargeChange
|
10
|
SmallChange
|
من
الواضح أننا نحتاج الأحداث التالية للأدوات
التالية
أحداثها المطلوبة
|
الأداة
|
تغير Change
|
شريط التمرير
|
تغير Change
|
أداة النص
|
نقر Click
|
زر الأوامر
|
لاحظ
أن حدث أداة شريط التمرير Scroll
غير كافي لأنه يعبر عن سحب مؤشر الشريط فقط
بينما حدث التغير يعبر عن التغير في موضع
المؤشر بصرف النظر عن سحب المؤشر أو نقر سهم
الشريط .
وسوف
تكون نافذة المشروع كما يلي :
في
نافذة الشفرة اختر
أداة النص tXTCent
والحدث Change
Private Sub tXTCent_Change()
'أخذ
قيمة شريط التمرير من أداة النص
VsbCent.Value = Val(tXTCent.Text)
End Sub
كما
تعلم أن أداة النص تستقبل حروفية في خاصية
النص Text
، بينما خاصية Value
فس شريط التمرير تقبل عدد صحيح ، لذا يجب
تغيير العدد الحرفي الذي ندخله في أداة النص
إلي عدد بالدالة Val
.
ومن
قائمة الأدوات اختر أداة شريط التمرير VsbCent
، واختر الحدث Change
واكتب فيه الشفرة التالية :
Private Sub VsbCent_Change()
'أخذ
نص أداة النص من قيمة شريط التمرير
tXTCent.Text = Str(VsbCent.Value)
End Sub
كما
تعلم أن أداة النص تقبل حروفية String
بينما الخاصية Valueمن
شريط التمرير تقبل عدد صحيح ، وبالتالي يجب
تحويل قيمة شريط التمرير إلي حروفية بالدالة Str
.
ومن
قائمة الأدوات أيضاً اختر أداة زر الأوامر Cmdexit
واختر الحدث Click
واكتب فيه الشفرة التالية :
Private
Sub VsbCent_Change()
'أخذ
نص أداة النص من قيمة شريط التمرير
tXTCent.Text = Str(VsbCent.Value)
End Sub
ولدي
تشغيل البرنامج يكون لديك شكل النافذة
التالية :
حاول
أن تغير القيمة الصغرى والقيمة الكبرى ،
وتمرس علي استخدامهما مع الخاصية Value
وغير موضع زر التمرير في أماكن عدة ولاحظ
الخاصيتين Top
,Left ، وخير حجم شريط
التمرير ولاحظ أثر ذلك علي الخاصيتين Width
و Height
، وحاول أن تضيف زر يجعل شريط التمرير يختفي ،
وأضف زر أوامر أخر يستعيد شريط التمرير
المخفي (Visible)
.
|