View Full Version : ساخت تایمر
Mohamad ghorbani
چهارشنبه 07 دی 1390, 17:51 عصر
سلام. من می خوام بدون استفاده از تایمر و با استفاده از حلقه یه تایمر بسازم:متفکر:
یه راهنمایی می کنید؟
با تشکر
ho3ein.3ven
چهارشنبه 07 دی 1390, 18:12 عصر
سلام. من می خوام بدون استفاده از تایمر و با استفاده از حلقه یه تایمر بسازم:متفکر:
یه راهنمایی می کنید؟
با تشکر
سلام
ببین تو هر کاری هم بکنی نمیشه کاری کرد که مثل یک تایمر عمل کنه . حتی اگه از حلقه هم استفاده کنی بدون مکث اعمال میشه.
و اینطوری نمیشه هر 2 ثانیه یک بار دستورات اجرا بشه
ولی یه تکه کد نوشتم که کار تایمر رو می کنه.
Private Sub Command1_Click()
Static p As Integer
p = p + 2
Label1.Caption = p
If p > 50 Then Exit Sub
Call Command1_Click
End Sub
Mohamad ghorbani
چهارشنبه 07 دی 1390, 18:19 عصر
با تشکر. ولی این کدی که گذاشتین اصلا کار تایمر رو نمی کنه.
من می خوام لیبل هر 1 ثانیه یه بار مقدارش عوض شه.
ولی این اصلا نمیشه
هیچ وقفه ای صورت نمیگیره
من می خوام یه وقفه ایجاد شه.
با تشکر
Veteran
چهارشنبه 07 دی 1390, 18:45 عصر
ببین تو هر کاری هم بکنی نمیشه کاری کرد که مثل یک تایمر عمل کنه . حتی اگه از حلقه هم استفاده کنی بدون مکث اعمال میشه.
و اینطوری نمیشه هر 2 ثانیه یک بار دستورات اجرا بشه
با استفاده از sleep میشه مکث انداخت اما در موقعه ای که مکث کرده نمیتونی با برنامه کاربکنی
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
بر حس میلی ثانیه هست
برای مثلا 2 ثانیه میشه
sleep 2000
vb6_man
چهارشنبه 07 دی 1390, 20:00 عصر
و اما اشکال این روش
تابع Sleep یکی از دستورات API هست که ایجاد وقفه می کنه
اما
در زمان وقفه، فرم کاملا Freez می شه
یعنی هنگ میکنه ( البته به نسبت زیادی زمان این هنگ شدن بیشتره )
ولی در Timer این اتفاق نمی افته حیتی اگه Interval روی 65000 باشه
واسه حل این مشکل 2 راه هست:
1. Timer رو به وسیله API ایجاد کنیم ( که خودش حلقه هم ایجاد می کنه )
2. از یه Sub دستی استفاده کنیم که من نمونش رو می ذارم
Sub PauSe(InterVal as String)
Dim CurrenT
CurrenT=Timer
Do While Timer-CurrenT < Val(InterVal)
DoEvents
Loop
End SUb
واسه صدا زدنش هم دیگه مشخصه:
PauSe 0.5
Veteran
چهارشنبه 07 دی 1390, 20:48 عصر
و اما اشکال این روش
تابع Sleep یکی از دستورات API هست که ایجاد وقفه می کنه
اما
در زمان وقفه، فرم کاملا Freez می شه
نگفتم که با این میتونی تایمر درست کنی
فقط گفتم که میشه با این مکث انداخت
===================
| خداییش دلت خوشه |
===================
M.T.P
پنج شنبه 08 دی 1390, 00:22 صبح
این نمونه با API هست. کدش هم زیاد نیست.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.