السلام عليكم ورحمة الله وبركاته
الى السادة اعضاء منتدانا الكرام اليكم اليوم شرح طريقة تشغيل مؤقت Timer بالملي ثانية.
ولتوضيح فقد عملت كلاس صغيرة اسميتها SuperTimer
سأوضح طريقة استخدامها بمثال مرفق في الموضوع
في المرفق ستجد ملفان الاول ملف اكسل و هو المثال الذي استخدمناه و ملف اخر وهو ملف الكلاس SuperTimer.cs
طريقة الاستخدام
=========
1 - لتعريف متغير يمثل المؤقت اكتب الكود التالي :
Dim st As New SuperTimer
2 - بعد تعريف المتغير (في حالتنا هو st) يمكننا انشاء اجراء بأي اسم. (سيحتوي الاجراء على الكود الذي سينفذ من قبل المؤقت)
مثال:
نرغب بزيادة قيمة الخلية A1 بمقدار 1 كل ربع ثانية. و ان يتم التوقف عند و صول قيمتها الى ال 100
Private Sub F1()
[A1] = [A1] + 1
If [A1] >= 100 Then If st.Active Then st.StopTimer
End Sub
3 - الكود التالي يوقف المؤقت اذا كان يعمل:
If st.Active Then st.StopTimer
4 - لتشغيل المؤقت اكتب الامر StartTimer و مرر عنوان الاجراء الذي ترغب في تنفيده (في حالتنا الاجراء F1) اليها:
هنا سنطلب من الاكسل تشغيل المؤقت كل ربع ثانية (كل ثانية تساوي 1000 ملي ثانية) و ان يتم تنفيذ الاجراء F1
st.StartTimer 250, AddressOf F1
5- الكلاس ممكن ان تنشء مجموعة من الاخطاء منها:
1 - خطأ المؤقت ليس قيد التشغيل : اذا تم ايقاف المؤقت بينما لا يعمل
st.ERROR_TIMER_IS_NOT_ACTIVE
2 - خطأ المؤقت قيد التشغيل : اذا تم اعادة تشغيل المؤقت وهو يعمل
st.ERROR_TIMER_ALREADY_STARTED
3 - خطأ المدة : اذا تم وضع قيمة اقل او تساوي صفر لمدة تشغيل المؤقت
st.ERROR_TIMER_DURATION_ERROR
4 - عند حدوث خطأ في تهيئة المؤقت
st.ERROR_TIMER_INITIALIZATION_FAILED
ملاحظة
=====
استخدمه بحذر و عند الحاجة.
يمكنك تحميل الكلاس و المثال من الملف المرفق
اسال الله تعالى ان يتقبل منى ومنكم صالح الاعمال
SuperTimer.zip