PDA

View Full Version : انجام عملیات بعد از نمایش فرم



Saeid59_m
یک شنبه 05 آبان 1387, 09:20 صبح
سلام
من می خواهم عملیاتی را (مثلاً پر شدن یک ProgressBar) بعد از نمایش فرم انجام دهم .
همانطور که می دانید نوشتن کد برای چنین مواردی در OnCreate فرم بی فایده است .

as13851365
یک شنبه 05 آبان 1387, 09:42 صبح
خوب در Onshow فرم بنویس !

arshia_
یک شنبه 05 آبان 1387, 12:17 عصر
آيا شما قصد ساخت يك فرم splash رو براي شروع كار برنامه خود داريد؟
اگر اينطوره از توضيحات قبلي دوستان در مورد فرم اسپلش كمك بگيريد

Saeid59_m
دوشنبه 06 آبان 1387, 08:17 صبح
اگر روی onshow بنویسی زمانی که پنجره مورد نظر زیر پنجره ها رفته و مجدداً ظاهرشود باز هم اجرا خواهد شد.
در ضمن باز هم ProgressBar بعد از پر شدن نمایش داده می شود .

آقای ارشیا :
من منظورم فرم اسپلش نیست .

amin_alexi
دوشنبه 06 آبان 1387, 09:46 صبح
اگر روی onshow بنویسی زمانی که پنجره مورد نظر زیر پنجره ها رفته و مجدداً ظاهرشود باز هم اجرا خواهد شد.
در ضمن باز هم ProgressBar بعد از پر شدن نمایش داده می شود .

يك شرط بزار كه يك بار اجرا بشه !
نتيجه رو شرط رو هم تويك فايل يا DB ذخيره كن !
من خودم اين جوري استفاده كردم !!

mossaferin
دوشنبه 06 آبان 1387, 10:05 صبح
سلام

البته onshow فقط زمانی دوباره اجرا میشه که فرم مورد نظر بسته شده باشه و دوباره بخواهیم فرم رو نمایش بدیم اگر در زیر فرم های دیگر هم قرار گرفته باشه و فرم رو show کنیم فقط onpaint اجرا میشه در واقع با هربار زیر و رو شدن فرم onpaint اجرا میشه ولی onshow فقط زمانی که فرم close یا hide شده باشه اجرا میشه

Saeid59_m
دوشنبه 06 آبان 1387, 10:26 صبح
اینو نگاه کنید توی onshow نوشتم . اما باز هم جواب نمی ده !!!
یعنی بعد از پر شدن ProgressBar نشون داده می شه

vcldeveloper
دوشنبه 06 آبان 1387, 11:39 صبح
با توجه به اینکه فرم را بصورت Modal فراخوانی می کنید، می تونید از رویداد OnActive فرم برای این کار استفاده کنید. اگر در برنامه فرم را بصورت Modal فراخوانی نکنید، با هر بار غیرفعال شدن فرم مربوطه، و فعال شدن مجدد آن (مثلا با سوئیچ کردن بین فرم ها) کد مربوط به OnActive یک بار اجرا میشه، که برای رفع این مشکل باید یک شرط قرار بدید که کد فقط یک بار اجرا بشه. اما این مسئله برای فرم هایی که بصورت Modal فراخوانی میشند صادق نیست، و OnActive فقط یک بار فراخوانی میشه.