PDA

View Full Version : ایجاد وقفه در حلقه For i



tehran2009
یک شنبه 03 آبان 1388, 22:06 عصر
دوستان من یک لیست دارم که بوسیله یک کامند تک تک کلمات را از لیست به تکست می برم اینجوری


For i = 0 To List1.ListCount - 1
DoEvents
List1.ListIndex = i
Text2.Text = List1.Text
Command2_Click
Next i

حالا می خوام وقتی روی کامند 2 کلیک بشه برنامه مکث کنه تا کامند 2 کار خودشو انجام بده.

Felony
یک شنبه 03 آبان 1388, 22:22 عصر
اگه درست منظورتون رو فهمیده باشم این کد مورد نظرتون میشه :

For i = 0 To List1.ListCount - 1
DoEvents
Text2.Text = List1.List(i)
Command1.Enabled = False
Next i
Command1.Enabled = True

tehran2009
یک شنبه 03 آبان 1388, 22:30 عصر
ممنون از پاسختون
اما من سوالم اینه وقتی کلمات را یکی یکی از لیست به تکست می برم و در بین آنها روی کامند 2 کلیک می کنم . می خوام تا زمانی که کار کامند 2 تموم نشده کلمه بعدی وارد تکست نشه.
یعنی یک مکثی صورت بگیره تا کامند2 کار خودشو انجام بده.

mpmsoft
دوشنبه 04 آبان 1388, 08:53 صبح
دوست عزیز شما باید یک متغیر تعریف کنید از نوع Boolean
و زمانی که کاربر بروی دکمه کلیک می کند شما در Do While یک چرخه دیگری بنویسید که این متغییر را چک کند

tehran2009
دوشنبه 04 آبان 1388, 12:03 عصر
ممنون میشم با پروژه های وی بی توضیح بدین برام.:قلب:

mpmsoft
دوشنبه 04 آبان 1388, 12:13 عصر
دوست عزیز شما از MultiThread استفاده کردید ؟

بصورت معمول VB خط به خط دستورات رو اجرا می کنه بنابراین تا زمانی که کد Command1_Click به پایان نرسه خط بعدی در حلقه اجرا نمی شه هرچند که از Doevents هم استفاده کردید

tehran2009
دوشنبه 04 آبان 1388, 12:53 عصر
کامندی که من روش کلیک میشه واسه من یک سایت باز می کنه . اما وقتی کلیک میشه می خوام برنامه مکث کنه تا سایت کاملاً لود بشه. که این در صورت معمول انجام نمی شه.

hamid6686
سه شنبه 05 آبان 1388, 18:36 عصر
کامندی که من روش کلیک میشه واسه من یک سایت باز می کنه . اما وقتی کلیک میشه می خوام برنامه مکث کنه تا سایت کاملاً لود بشه. که این در صورت معمول انجام نمی شه.

اگر از کنترل Webbrowser برای باز کزدن سایتت استفاده می کنی متد document complete زمانی رخ میده که صفحه وب کاملا لود میشه.پس با استفاده از یک متغیر در این قسمت و چک کردنش توی حلقه For میتونی تا لود شدن کامل صفحه از اجرای command_click جلوگیری کنی


از ای پی آی Sleep هم میتونی استفاده کنی که راه درستی نیست
چون باعث میشه برنامت به حالت قفل(هنگ)بره

mamad_Datcom
دوشنبه 11 آبان 1388, 09:55 صبح
سلام دوستان
بابا این بنده خدا میخواد یه وقفه ایجاد کنه.
شما لطف کردید و 100 راه مختلف (دیگه) رو گفتید، خوب لطف میکردید و چیزی رو که میخواست رو میگفتید دیگه.:چشمک:
به هرحال دستتون درد نکنه.:تشویق:

این هم نحوه ایجاد وقفه بین دو خط در Vb:
دستورات زیر رو قتو قسمت "کد نویسی" بزار:



Sub Pause(interval)
Dim Current
Current = Timer
Do While Timer - Current < Val(interval)
DoEvents
Loop
End Sub

حالا هرکجا که خواستی وقفه ایجاد کنی کافیه دستور زیر رو بنویسی:




Pause (Time Pause)



در ضمن، Time Pause یا همون مقدار زمان وقفه برحسب ثانیه هستش.
موفق باشی:لبخندساده: