الميقاتي...الأداة Timer

في كثير من الأحيان نكون في احتياج لأن نجعل بعض الأحداث تقع بعد فترة زمنية معينة وبدون تدخل مستخدم البرنامج و هذا ما نستطيع عمله  باستخدام الأداة Timer و الحدث Tick .ان الكائن Timer في الحقيقة ما هو الا ساعة غيرمرئية تتيح لك التعامل مع ساعة الحاسب من داخل البرامج التي تقوم بتنفيذها .


عندما يكون لدينا Timer على النموذج فانه ينشط على فترات زمنية متساوية تسمى intervals و نتيجة لهذا النشاط يقع الحدث tick ((الحدث Tick مثل الحدث click أو mouveMouse ولكنه خاص بالكائن Timer ))


والميقاتي يستخدم   كثيرا  وسوف تحتاج الى استخدامه في كثير من التطبيقات ((معرفة تاريخ ميلادك و تذكيرك به في اليوم المحدد و معرفة متى تم تعيين موظف ما في الشركة , حساب عدد سنوات العمل لدا احدى الجهات ,عمل برنامج تجريبي لمدة معينة ثم ايقافه ...))


اضافتها للنموذج :توجد هذه الأداة في صندوق الأدوات ToolBox  بصفة أساسية قم بالنقر عليها و تمريرها للنموذج فنراها تظهر في شريك سفلي أسفل النموذج form   لا تظهر عليه ...

 أو يمكننك تعريفها كمتغير كما يلي :
  DimTimer1 As New Timer


ملحوظة : ان لم تجد هذه الأداة في صندوق الأدوات قم بما يلي :
1-في أي مكان على صندوق الأدوات ToolBox اضغط بمؤشر الماوس الأيمن right click سوف تظهر لك قائمة اختر منها choose items

2-سوف يفتح لك مربع حواري يحتوي على أربع تبويبات في الأعلى اختر . net framework components

3- قم بالبحث عن الأداة داخل هذا التبويب و بعد ايجادها ضع أمامها علامة صح ثم اضغط ok

فتراها قد أضيفت لصندوق الأدوات




أهم و أشهر خصائص الأداة :


الخاصيتان Enabled و الخاصية Interval  هي أهم خاصيتان لهذه الأداة و التي سوف تستخدمهما كخاصيتين أساسيتين عند استعمال الأداة 


فالخاصية Enabled  تأخذ القيمة True أو False و القيمة الافتراضية لها False و عليك أن تجعلها True اذا أردت تشغيل الميقاتي  واذا أردت ايقاف ال Timer اجعلها False علما بأنه يمكنك تغيير هذه الخاصية الى  True أو False أثناء تشغيل البرنامج و أثناء تصميمه


و الخاصية interval تحدد الفترة الزمنية التي ينشط بعدها الميقاتي وتتراوح بين 0 الى 65535 مللي ثانية 


 الثانية =1000 مللي ثانية 


فاذا كان : Timer1.Interval = 2000
سوف ينشط الميقاتي بعد مرور ثانيتين




مثال 1:
ننتقل الى برنامج الفيجوال ستوديو أو الفيجوال بيسك 2005 أو 2008 أو 2010
و نقوم باضافة الأداة Timer ((وقد سبق شرج كيفية اضافتها)) و زر Button1 الخاصية Text له =1 حيث بعد مرور كل 5 ثوان  تزداد القيمة بمقدار واحد يعني بعد خمس ثوان sوف يصبح 2 و بعد خمس ثوان أخرى سوف يصبح 3 ...وهكذا




في الحدث Form1_Load نقوم بكتابة الكود التالي
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Interval = 5000
        Timer1.Enabled = True
    End Sub




مث ننتقل بعد ذلك الى الأداة Timer1 وننقر فوقها بزر الماوس نقرا مزدوجا لفتح نافذة الكود الخاص بها سوف تجد مكتوبا ما يلي :
   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
هنا اكتب الأوامر التي تريد نفيذها
    End Sub

فقم بكتابة الكود التالي

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Button1.Text = Val(Button1.Text) + 1
    End Sub
وقم بتشغيل البرنامج سوف تجد بعد مرور خمس ثوان من تشغيله زادت القيمة و أصبحت 2  و بعد خمس ثوان أخرى زادت وأصبحت 3...وهكذا 


و اذا أردت ايقاف العد و الأداة Timer اجعل الخاصية Enabled تساوي False




مثال 2 :برنامج مسابقات يقوم باختيار اسم عشوائي من بين مجموعة أسماء كل5  ثوان لتحميل البرنامج  من هنا




مثال 3:  في هذا المثال سوف نقوم بعرض الفورم بطريقة تدريجية جميلة تضفي على المشروع جمالا ورونق جذاب .
قم باضافة الأداة Timer الى النموذج ومن نافذة الخصائص اجعل الخاصية Enabled  تساوي True  و الخاصية Interval = 150, واجعل الخاصية opacity للــForm = 0
 ثم افتج نافذة الكود الخاص بالأداة عن طريق النقر عليها نقرا بزدوجا بالماوس وقم بكتابة الكود  الملون بالأحمر  كالتالي:
 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Me.Opacity = Me.Opacity + 0.1
        If Me.Opacity = 1 Then
            Timer1.Enabled = False
        End If
    End Sub

 قم بتشغيل البرنامج ولاحظ ما يحدث...


 أتمنى يكون الدرس واضح و مفهوم وان كان هناك أي استفسار أنا موجود و تابعوني في الدرس القادم مع دوال التعامل مع الوقت و التاريخ و التكوين Date Time


هناك 3 تعليقات: