PDA

View Full Version : وقفه زمانی



ILOVEVB
یک شنبه 03 خرداد 1388, 11:16 صبح
سلام
چه طور می شه در یک sub وقفه زمانی ایجاد کرد. منظورم اینه که می خوام مثلا یک دستور توی ساب انجام بشه و پس از چند ثانیه مشخص دستور بعدی و پس از اون دوباره چند ثانیه توقف و دستور بعدی.
ممنون

xxxxx_xxxxx
یک شنبه 03 خرداد 1388, 16:53 عصر
از تابع Sleep استفاده كنيد


Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

ورودي هم كه ديگه معلومه. يك عدد بر حسب ميلي ثانيه.

mpmsoft
یک شنبه 03 خرداد 1388, 19:28 عصر
من روش زیر رو توصیه می کنم



Private Sub Form_Load()
Pause 5 '5 second
End Sub

Private Sub Pause(Second As Long)
Dim StrT As Long
StrT = Timer + Second
While StrT > Timer

DoEvents
Wend
End Sub

xxxxx_xxxxx
یک شنبه 03 خرداد 1388, 20:12 عصر
سلام
من هم يك زماني (http://barnamenevis.org/forum/showthread.php?t=123222) همين كارو مي كردم. ولي مي دونيد ايرادش چيه؟ ايرادش رو تو همون لينك يك زماني گفتم.
زماني كه شما به عنوان وقفه در نظر ميگيريد نمي تونه كمتر از 1 ثانيه باشد. يعني اگه عدد 1 رو به pause بديد ممكنه 1 صدم ثانيه عمل كنه، نه يك ثانيه.
و اين كه كلاً هميشه ميزان خطاش از 0.01 ثانيه هست تا 0.99 ثانيه. پس براي زمان هاي كوتاه نمي تونه دقيق عمل كنه.
به عنوان مثال اينو امتحان كنيد:


Private Sub Form_click()
Print Timer
Pause 1
Print Timer
End Sub


موفق باشيد/

M_P_1374
یک شنبه 03 خرداد 1388, 20:43 عصر
ببخشید من از Sleep استفاده میکنم ولی وقتی یه دستور به دستور قبل از Sleep تبدیل میشه بعد از وقفه اجرا میشه به طور مثال


Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Click()
Print "Start"
Print "Sleep"
Sleep 1000
Print "End"
End Sub


چیکار باید بکنم که Print "Sleep" قبل از دستور اجرا بشه
از sub و function هم استفاده کردم نشد

xxxxx_xxxxx
یک شنبه 03 خرداد 1388, 22:13 عصر
چیکار باید بکنم که"Print "Sleep قبل از دستور اجرا بشه
دستور print قبل از sleep اجرا ميشه ولي تو اعمال شدنش تاخيري وجود داره. (تاخير به ميزان خيلي كم)
براي چاپ يك رشته، زمان كوتاهي(خيلي كوتاه) احتياج هست تا رشته به فرم ارسال بشه. در حين اين زمان به دستور بعدي كه sleep هست مي رسيم و اين دستو اجرا ميشه. به همين خاطر فكر مي كنيم كه دستور print بعد از sleep اجرا ميشه. به هر حال براي رفع اين مشكل از DoEvents قبل از sleep استفاده كنيد.

mpmsoft
یک شنبه 03 خرداد 1388, 22:40 عصر
دستور Sleep بطور کامل نرم افزار رو می خوابونه و اختلال در کار نرم افزار ایجاد می کنه

دوست عزیز شما دستور Pause رو برای کجا می خواهید استفاده کنید ؟