PDA

View Full Version : مشکل در ترتیب اجرای دستورات



Arashdn
یک شنبه 27 اسفند 1391, 22:53 عصر
سلام دوستان
کد زیر رو در نظر بگیرید
Private Sub Command1_Click()
Label3.Caption = "Please wait..."
Label3.Visible = True

If Check2.Value = 1 Then
recFix(path)
Else
normalFix(path)
End If

Label3.Visible = False
End Sub
خب همونطور که مشخص هست کد مربوط به کلیک روی یک دکمه هست
توابع recfix و normalfix توابعی هستن که کارشون وقت گیره
من میخوام قبل اجرای این توابع در لیبل 3 نوشته بشه
Please wait
که در کد هم همین رو نوشتم
اما مشکلی که هست با زدن دکمه بعد اینکه تابع کارش رو انجام یه لحظه لیبل3 میاد و سریع میره
چیکار کنم که قبل اینکه تابع کارشو انجام بده لیبل 3 بیاد؟

ممنون

ho3ein.3ven
یک شنبه 27 اسفند 1391, 23:49 عصر
سلام دوستان
کد زیر رو در نظر بگیرید
Private Sub Command1_Click()
Label3.Caption = "Please wait..."
Label3.Visible = True

If Check2.Value = 1 Then
recFix(path)
Else
normalFix(path)
End If

Label3.Visible = False
End Sub
خب همونطور که مشخص هست کد مربوط به کلیک روی یک دکمه هست
توابع recfix و normalfix توابعی هستن که کارشون وقت گیره
من میخوام قبل اجرای این توابع در لیبل 3 نوشته بشه
Please wait
که در کد هم همین رو نوشتم
اما مشکلی که هست با زدن دکمه بعد اینکه تابع کارش رو انجام یه لحظه لیبل3 میاد و سریع میره
چیکار کنم که قبل اینکه تابع کارشو انجام بده لیبل 3 بیاد؟

ممنون

سلام . کد های مربوط به توابع recFix و normalFix رو قرار بدین .

M.T.P
دوشنبه 28 اسفند 1391, 12:17 عصر
یه Refresh به لیبل بدید حله:


Label3.Caption = "Please wait..."
Label3.Visible = True
Label3.Refresh

Arashdn
دوشنبه 28 اسفند 1391, 16:01 عصر
یه Refresh به لیبل بدید حله:


Label3.Caption = "Please wait..."
Label3.Visible = True
Label3.Refresh
حل شد
ممنون از شما
راستی این رفرش چیکار میکنه؟

Arashdn
دوشنبه 28 اسفند 1391, 17:25 عصر
یه مشکل جدید
فرض کنیم میخوایم باز شدن فرم اتوماتیک تابع recfix فراخوانی بشه
ولی قبلش فرم باز بشه و تو لیبل 3 لطفا صبر کنید رو بنویسه و بعد تابع رو نمایش بده
همینطوری تو Form1_Load که میزارم تا زمانی که recFix تموم نشده باشه فرم رو نشون نمیده ....

SlowCode
دوشنبه 28 اسفند 1391, 17:55 عصر
تابع رو تو رویداد gotfocus فرم صدا بزن.
چیزای دیگه ای مثل متن لیبل رو هم تو فرم لود بنویس.

Arashdn
دوشنبه 28 اسفند 1391, 21:13 عصر
تابع رو تو رویداد gotfocus فرم صدا بزن.
چیزای دیگه ای مثل متن لیبل رو هم تو فرم لود بنویس.
متاسفانه این روش جواب نداد

meys34
دوشنبه 28 اسفند 1391, 21:40 عصر
یه مشکل جدید
فرض کنیم میخوایم باز شدن فرم اتوماتیک تابع recfix فراخوانی بشه
ولی قبلش فرم باز بشه و تو لیبل 3 لطفا صبر کنید رو بنویسه و بعد تابع رو نمایش بده
همینطوری تو Form1_Load که میزارم تا زمانی که recFix تموم نشده باشه فرم رو نشون نمیده ....

هر جایی خواستی از دستور Me.Show استفاده کن...

Private Sub Form_Load()
Label3.Caption = "Please wait..."
Label3.Visible = True
Label3.Refresh

Me.Show

If Check2.Value = 1 Then
recFix (Path)
Else
normalFix (Path)
End If

Label3.Visible = False
End Sub

vbhamed
چهارشنبه 30 اسفند 1391, 03:06 صبح
سلام

البته بهتره بعد از دستوري كه دوستمون گفتن دستور DoEvents رو هم قرار بدين