View Full Version : یه سوال ساده درباره باز شدن فرم
vb_nima
سه شنبه 11 اردیبهشت 1386, 22:43 عصر
کدام یک از رویدادهای فرم بعد از نشان دادن فرم اجرا میشود.
ببینید من باید در فرمم بلافاصله بعد از باز شدن یک عمل انجام بشه و حتما هم باید خود فرم نشون داده بشه. من از رویدادهای load و Intialize استفاده کردم ولی اونا تا عمل من(مثلا یه حلقه) به پایان نرسه فرم را نشون نمیدند.
حالا من باید چی کار کنم.
آیا روش دیگری وجود دارد؟
S_VB.max
سه شنبه 11 اردیبهشت 1386, 22:53 عصر
Form_Activate
vb_nima
چهارشنبه 12 اردیبهشت 1386, 22:59 عصر
اگر از activate استفاده کنم اونوقت اگر پنجره برنامه غیر فعال بشه و دوباره فعال بشه که دوباره این رویداد اتفاق می افته و برنامه از سرگرفته میشه؟
ببینم مثلا این برنامه های setup چطوری عمل میکنند اون فرمی که progressbar داره بعد از باز شدن فرم عملیات شروع میشه.
amirsadeghi
چهارشنبه 12 اردیبهشت 1386, 23:05 عصر
در Form_activate یک متغیر بزار و مقدارشو بررسی کن
S_VB.max
پنج شنبه 13 اردیبهشت 1386, 00:04 صبح
یه متغییر سراسری از نوع boolan تعریف کن در اولین مرتبه اجرا مقدار True بگیرد بعد وقتی دوباره فرم فعال شد چک کنه که آیا مقدار برابر Ture است یا نه اگر بود اون دستورات را اجرا نکنه
mehran8
پنج شنبه 13 اردیبهشت 1386, 07:14 صبح
این کار ها فایده نداره باز هم اگه از حلقه استفاده کنید در نمایش فرم تاخیر ایجاد می شه .
این مساله برای خودم هم اتفاق افتاده بود .
بهترین کار اینه که یک Timer روی فرم قرار بدی و Interval اون رو مثلاً بذاری 500 .
و همچین کدی بنویسی :
private sub timer1_timer()
دستورات
timer1.Enabled=False
End Sub
vb_nima
پنج شنبه 13 اردیبهشت 1386, 09:56 صبح
آره خودمم هم همین کار را کردم. خیلی راحته.
amirsadeghi
پنج شنبه 13 اردیبهشت 1386, 14:29 عصر
کاری که گفتیم نیاز به حلقه نداره
فقط یک بار برسی میشه اگر true بود کار رو انجام بده و در غیر اینصورت نه
و کاری که شما گفتی سرعت فرم رو پایین میاره
rostamy.m
پنج شنبه 13 اردیبهشت 1386, 14:44 عصر
form_load
من فکر میکنم این بهتر باشه
mehran8
پنج شنبه 13 اردیبهشت 1386, 17:33 عصر
form_load
من فکر میکنم این بهتر باشه
بعد از خوندن مطالب بالایی این حرف رو زدی ؟
mehran8
پنج شنبه 13 اردیبهشت 1386, 17:35 عصر
کاری که گفتیم نیاز به حلقه نداره
فقط یک بار برسی میشه اگر true بود کار رو انجام بده و در غیر اینصورت نه
و کاری که شما گفتی سرعت فرم رو پایین میاره
دیگه 5/. ثانیه به کجا می رسه ؟!:لبخند:
vb_nima
پنج شنبه 13 اردیبهشت 1386, 18:43 عصر
ما فقط یک بار از timer استفاده میکنیم و بعد از یک باز غیر فعال میشود. به نظر من خوانایی برنامه با timer بالا می رود. اگر در رویداد form_load آنرا از حالت غیر فعال به فعال تغییر دهیم.
enabledتایمر را در لیست Propertise به false تغییر میدهیم و ..
private sub form_load()
timer1.interval=1000
timer1.enabled=true
end sub
private sub timer1_timer()
'your command
timer1.enabled=false
end sub
اینطوری اگر کس دیگری برنامه را دید متوجه میشه که قرار است بعد از مدت یک ثانیه از باز شدن فرم یک عمل انجام شود.پس خوانایی برنامه بیشتر میشود
mehran8
جمعه 14 اردیبهشت 1386, 09:14 صبح
خیلی ممنون آقا نیما .
__siavash__
جمعه 14 اردیبهشت 1386, 11:58 صبح
این رویداد ها رو هم امتحان کن ببین جواب میدن
Resize یا Paint
mehran8
شنبه 15 اردیبهشت 1386, 13:53 عصر
باز هم اون چیزی که با تایمر امکان پذیره نمی شه !
amirsadeghi
سه شنبه 18 اردیبهشت 1386, 11:48 صبح
ببخشید ولی همون 5/0 ثانیه که از همه بدتره تند تند کلاک می خوره و دستورات رو اجرا می کنه
mehran8
سه شنبه 18 اردیبهشت 1386, 16:24 عصر
ببخشید ولی همون 5/0 ثانیه که از همه بدتره تند تند کلاک می خوره و دستورات رو اجرا می کنه
عزیز من توی 5/ ثانیه دستورات اجرا می شن و بعد از اون تایمر غیر فعال می شه می ره پی کارش . و زمان زیادی رو مصرف نمی کنه
amirsadeghi
چهارشنبه 19 اردیبهشت 1386, 14:10 عصر
بله شما درست می فرمایید
( حالا چرا میزنی ؟ )
mehran8
چهارشنبه 19 اردیبهشت 1386, 21:31 عصر
نه بابا این چه حرفیه؟ ما چاکریم . :)
حامد مصافی
پنج شنبه 20 اردیبهشت 1386, 00:47 صبح
چرا یک مسئله ساده رو انقد پیچیده کردید و ریختین دورش؟؟؟
راهکاری که mehran8 (http://www.barnamenevis.org/forum/member.php?u=29170) ارائه کرده بهترین راه موجود هست!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.