دروس دورة برنامج الفجوال بيسك 6
درس تشغيل الموقت Timer
أولا : مشروع نريد تنفيذ شفرة (كود) يرحب بك عند تشغيل الزر ( عند الضغط على الزر ) بعد 3 ثواني مثلا و يكتب الترحيب في label1
قم بفتح مشروع جديد و أدرج فيه الأدوات التالية Command1-label1-timer1 مثل التالي:
أولا يجب أن تعرف أن لتشغيل timer1 توجد خاصيتين مهمتين فيه و هما Enabled و هي التي تشغل التايمر و أيضا خاصية Interval و هي المسؤولة عن الوقت و كل 1000 هي عبارة عن ثانية أي 3000 معناها 3 ثواني .
قم بتنشيط التايمر و قم بتغيير خصائصه إلى التالي :
حيث أننا قمنا بتغيير خاصية Enabled إلى False لأننا لا نريد أن يعمل التايمر من بداية تشغيل البرنامج.و أيضا قم بتغيير خاصية Interval إلى 3000 لأننا نريد أن يظهر الترحيب بعد 3 ثواني .و بهذا فلن يشتغل التايمر مع بداية البرنامج و سيعمل بعد ثلاث ثواني .
ملاحظة :نستطيع الاستغناء التغيير اليدوي للخاصيتين و كتابة الشفرة التالية بدلها في حدث Load للنموذج Form1 Private Sub Form_Load()
Timer1.Enabled = False
Timer1.Interval = 3000
End Sub الآن نختار Command1 و نضغط عليه ضغطا مزدوج ثم نكتب فيه الشفرة التالية التي تشغل التايمر و بعد ثلاث ثواني سيظهر الترحيب:
Private Sub Command1_Click()
Timer1.Enabled = True
End Subالآن بقت الشفرة الخاصة بالتايمر التي تفيد أن يكتب label1 الترحيب و يلغي عمل التايمر . قم باختيار التايمر و ثم اضغط عليه ضغطا مزدوجا لتنفتح لك صفحة الشفرة (الكود)
Private Sub Timer1_Timer()
Label1.Caption = "أهلا و سهلا بكم"
Timer1.Enabled = False
End Subالسطر الأول يكتب رسالة أهلا و سهلا بكم في الليبل1 ، و السطر الثاني يقوم بإيقاف عمل التايمر لكي لا يعمل بشكل مستمر كل ثلاث ثواني .
ملاحظة :و نستطيع كتابته بطريقة أخرى و هي التالي :Private Sub Timer1_Timer()
Label1= "أهلا و سهلا بكم"
Timer1.Enabled = False
End Subقم بتشغيل البرنامج و تجربته
ثانياً : مشروع عمل عداد للوقت تصاعدي
وصف العمل لنفترض أن لديك برنامج تعليمي و تريد أن تحدد زمن الإجابة بزمن 15 ثانية و بعده ينتهي الوقت فكيف يتم ذلك ؟
ما دام البرنامج فيه وقت فنحتاج إلى أداة Timer1 قم بإدراجها . و نحتاج إلى Label1 لكتابة الزمن بداخله . و سنحتاج إلى Command1 لتشغيل التايمر بالضغط عليه و بدل ما يلزم للتالي .
قم بتنشيط التايمر و قم بتغيير خصائصه إلى التالي :
حيث أننا قمنا بتغيير خاصية Enabled إلى False لأننا لا نريد أن يعمل التايمر من بداية تشغيل البرنامج.و أيضا قم بتغيير خاصية Interval إلى 1000 لأننا نريد أن يظهر الرقم بداخل Label1 كل ثانية .
ملاحظة :نستطيع الاستغناء التغيير اليدوي للخاصيتين و كتابة الشفرة التالية بدلها في حدث Load للنموذج Form1 Private Sub Form_Load()
Timer1.Enabled = False
Timer1.Interval = 1000
End Sub الآن نختار Command1 و نضغط عليه ضغطا مزدوج ثم نكتب فيه الشفرة التالية التي تشغل التايمر و بعد ثلاث ثواني سيظهر الترحيب:
Private Sub Command1_Click()
Timer1.Enabled = True
End Subالآن بقت الشفرة الخاصة بالتايمر التي تفيد أن يكتب label1 الأرقام من( 0 ) إلى ( 15 ) حيث يضيف كل ثانية واحد على الرقم السابق و يلغي عمل التايمر في حال وصل إلى 15 ثانية و يعطي مسج بانتهاء الوقت . قم باختيار التايمر و ثم اضغط عليه ضغطا مزدوجا لتنفتح لك صفحة الشفرة (الكود)
Private Sub Timer1_Timer()
Label1.Caption = Val(Label1.Caption) + 1
If Val(Label1.Caption) = 15 Then
Timer1.Enabled = False
MsgBox ("انتهى الوقت")
End If
End SubLabel1.Caption = Val(Label1.Caption) + 1
هذا السطر يقوم بزيادة 1 بعد كل ثانية فهو يأخذ ما بداخل الليبل و يضيف على 1 و تفيد Val بتحويل ما بداخل Label إلى رقم و ثم يتم إضافة 1 .
If Val(Label1.Caption) = 15 Then
السطر الثاني شرط بأداة If و معناها إذا يقوم باكتشاف ما بداخل Label1 و ثم تحويله إلى رقم و إذا ساوى 15 يقوم وينفذ الشرط الذي بالسطر الثالث
Timer1.Enabled = False
هذا السطر يقوم بإلغاء عمل التايمر أي لا ينفذ الشفرة بعد ثانية .
MsgBox ("انتهى الوقت")
هذا السطر يقوم بعرض مسج يكتب بها انتهى الوقت
End If
هذا السطر لإنهاء جملة الشرط
قم بتشغيل البرنامج و الضغط على الزر و سيعمل البرنامج و كل ثانية سيزيد الرقم إلى أن يصل إلى 15 فسيتوقف العد مثل التالي: