PDA

View Full Version : آموزش: نحوه کارکردن با DoEvents



www.pc3enter.tk
پنج شنبه 01 آبان 1399, 16:15 عصر
سلام عزیزان دیدم بعضی از دوستان هم مشکل دارن در نحوه استفاده از DoEvents و هم نمیدونند این چیه.
ببینید DoEvents این تابع رو وقتی دارین توی برنامتون از یك حلقه تكرار كه ممكنه تموم شدنش طول بكشه استفاده میكنین توی حلقه فراخوانی كنین.حالا چكار میكنه؟


بطور عادی وقتی دارین توی یه حلقه تكرار(یا هر كدی!!) یكسری محاسبات رو انجام میدین تا زمانی كه حلقه تموم نشه برنامتون در مقابل Message هایی كه بش ارسال میشه عكس العملی انجام نمیده و همه عكس العمل ها رو بعد از تموم شدن حلقه انجام میده و یا اگه شما توی حلقه یه كدمربوط به چاپ كردن یه رشته روی فرم رو نوشته باشین عمل چاپ شدن رو بعد از تمام شدن حلقه مشاهده میكنین.به قولی تا زمان پایان حلقه برنامه هیچ Event ی انجام نمیده(البته این مساله 100 در 100 هم نیست).تابع DoEvents این كار رو براتون میكنه.این دو كد رو تست كنین :

فقط یک لیست باکس به برنامه اضافه کنید.


Private Sub Command1_Click()


Dim i As Long


Do While i < 10000000


i = i + 1


If i < 20 Then List1.AddItem i


Loop


End Sub


Private Sub Command1_Click()


Dim i As Long


Do While i < 10000000


i = i + 1


If i < 20 Then List1.AddItem i


DoEvents


Loop


End Sub



وقتی دكمه رو توی كد اول فشار میدین تا زمانی كه حلقه تموم نشده نمیتونین اعضای اضافه شده رو توی لیست باكس ببینین یا فرم رو حركت بدین.در صورتی كه در كد دوم این طور نیست.