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

أريد شرح وافي للأداة Timer

بدأه -The-Ghost- في 13 يونيو 2008 · 2 رد · 7,866 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لو سمحتوا أنا أريد كل شئ تعرفوه عن الأداة تايمر

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

[/وسط]

#2

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

لا يوجد بخصوص الـ Timer كلام كثير. فكما يدل اسمه هو أداة توقيت (مؤقت) يستعمل لتنفيذ مجموعة من الأوامر كل قترة زمنية محددة مسبقاً (أثناء التصميم) أو يتم تحديدها و تغييرها أثناء التشغيل.

للـ Timer خاصيتان أساسيتان هما Enabled و Interval.

الخاصية Enabled أعتقد أنها معروفة، إذ يمكن ضبطها على True لتشغيل الـ Timer (أي يقوم بتنفيذ الكود المحدد له)، و يمكن ضبطها على False لإيقاف الـ Timer (أي لا يقوم بتنفيذ الكود المحدد له).

الخاصية Interval هي الفترة الزمنية بالميلي ثانية (milliseconds) و التي تحدد معدل تكرار تنفيذ الكود المحدد للـ Timer. و هي قيمة عددية بين 0 و 65535 ميلي ثانية.

إذا كانت قيمة Interval هي الصفر (0) فإن الـ Timer لا يعمل (كأن Enabled = False). أما القيمة الكبرى (65535) فإنها تساوي تقريباً دقيقة واحدة و 5 ثوان و نصف الثانية.

للأداة Timer حدث واحد فقط هو الحدث Timer حيث نكتب الكود الذي نريد تنفيذه كلما مرت الفترة الزمنية المحددة في الخاصية Interval.

فمثلاً إذا كان لدينا مربع نص (Text1) و نريد تغيير لون خلفيته كل ثانيتين باستعمال Timer1 فإننا نضبط الخاصية Interval للـ Timer1 على 2000 (أي 2000 ميلي ثانية = 2 ثانية) ثم نكتب الكود التالي:

Private Clr As Long

Private Sub Timer1_Timer()
	Text1.BackColor = QBColor(Clr)
	Clr = (Clr + 1) Mod 16
End Sub

حيث الدالة QBColor هي من دوال VB و تقبل قيم من 0 إلى 15.

الكود السابق يتم تنفيذه كلما مرت ثانيتان من الوقت لأن الخاصية Interval للـ Timer مضبوطة على 2000.

فإذا أردنا أن يتم تنفيذ الكود السابق كلما مرت دقيقة فإننا نضبط الخاصية Interval على 60000 (أي 60000 ميلي ثانية = 60 ثانية = 1 دقيقة).

ماذا لو أردنا تنفيذ كود الـ Timer على فترات أطول من دقيقة واحدة؟!

ببساطة نضبط الخاصية Interval على 60000 و نصرح عن متغير كعداد للدقائق. هذا المتغير يكون عاماً (في القسم General) أو محلياً (داخل الإجراء) على أن يكون ساكناً (Static) كما في الكود التالي:

Private Sub Timer3_Timer()
	Static Cnt As Long

	Cnt = Cnt + 1
	If Cnt = 5 Then
		Cnt = 0
		MsgBox "لا تنس موعدك بعد العصر"
	End If
End Sub

الكود السابق يقوم بعرض الرسالة كل 5 دقائق. لاحظ تصفير العداد (Cnt) بعد مرور الخمس دقائق ليبدأ العد من جديد.

ملاحظة أخيرة: يمكن أن يكون لديك أكثر من Timer واحد تعمل في نفس الوقت.

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

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

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

#3

شكرا لك يااخي العزيز شرح وافي وكافي :clapping:

ارجوا لك حسن التوفيق

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