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

كيفية عمل تايمر

مغلق
بدأه sekora في 3 ديسمبر 2006 · 11 رد · 1,256 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

شكرا لكم جزيلا

#2

تقصد تايمر يشتغل بعد 3 ساعات , همممممممممممممممممممممممم , أستعمل و ظيفة GetTickCount

#3

سوالك واضح اخي

ولكن التايمر لا يعمل ثلاث ساعات متواصلة

التايمر يعمل دقيقه واحدة فقط. على حد علمي لأن الثانية تساوي ( 1000 )

والدقيقه تساوي ( 60000 ) والتايمر ما يقبل أكثر من ( 60000 ) بس ممكن تجي بعدد أثنين تايمر

الأول يشتغل دقيقه ويقفل نفسه ويشغل التايمر الثاني لمدة دقيقه ويقفل نفسه التايمر الثاني وشغل التايمر الأول وهكذا

وتضع ليبل في كل مره يشتغل تايمر يزيد واحد حتى يصل لعدد ( 10800000000 ) اللي هو ثلاث ساعات

بعد كذا ينفذ الأمر المطلوب.... مجرد اجتهاد ولكن ما سويته قبل كذا لكن يتهألي انه صحيح .. هذا والله اعلم

المرفقات توضح الطريقة أكثر

_______1.rar

تم تعديل هذه المشاركة بواسطة محمدvb في 3 ديسمبر 2006 في 22:51

#4
Option Explicit
Dim RTime As Long
Private Declare Function GetTickCount& Lib "kernel32" ()

Private Sub Form_Load()
tim3H.Interval = 1000: tim3H.Enabled = False
timDummy.Interval = 100: timDummy.Enabled = True

'I guess that 3 hours = 360000 milliseconds.

RTime = GetTickCount + 360000
End Sub

Private Sub timDummy_Timer()

If GetTickCount >= RTime Then
	tim3H.Enabled = True
	timDummy.Enabled = False
End If

End Sub

Private Sub tim3H_Timer()
'Add your code here...!
End Sub
#6

اشكركم جميعا على الردود

انا اقصد التايمر يشتغل بعد ثلاث ساعات من فتح الفورمه وليس يشتغل ثلاث ساعات متواصله

بمعنى انا فتحت الفورمه لمدة ثلاث ساعات عايز التايمر يشتغل ينفذ اوامر كل ثلاث ساعات ويفصل

شكرا لكم

#7

ياعزيزي نفس العملية صب وأحقن هيه هيه

شوف مثالي السابق وأنته تعرف الطريقة كيف تجي

غير السطر بدل الرسالة حط الامر اللي انته تبغاه على فكره ممكن تخفي الليبل والعملية حتكون ماشية.

تحياتي للجميع أرجو أني أفدتك

تم تعديل هذه المشاركة بواسطة محمدvb في 3 ديسمبر 2006 في 22:57

#8
Option Explicit
Dim RTime As Long
Private Declare Function GetTickCount& Lib "kernel32" ()
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()
Me.Show
tim3H.Interval = 1000: tim3H.Enabled = False

'I guess that 3 hours = 360000 milliseconds.

RTime = GetTickCount + 360000

Do Until GetTickCount >= RTime
	DoEvents: Sleep 100 '<-The Sleep API will prevent the DoEvents from eating your memory & raising the CPU Usage to 100.
Loop

tim3H.Enabled = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
End
End Sub

Private Sub tim3H_Timer()
'Add your code here...!
End Sub

طريقتى الأولى أفضل بسبب أحتياج الكود ده لـ End و لأستعماله DoEvents

#9

مضبوط اخي msayed2004 طريقة جميله

تحياتي لك وللأخوه جميع,

#10

شكرا محمد :)

يارب تنفع الأخ Sekora

تم تعديل هذه المشاركة بواسطة msayed2004 في 3 ديسمبر 2006 في 23:38

#11

اشكركم جميعا على تواصلكم

المثال نفع وتمام

جزاكم الله خيرا

#12

بالتوفيق , وأحب أقول حاجة كمان : الـ APIs Timers تقدر تشتغل بأى Interval مهما كان طولها - طبعا فى حدود المتغير Long - أنا دورت كتير و فعلا وصلت لواحد كويس هبعتهولك أن شاء الله.

هذا الموضوع مغلق.

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