PDA

View Full Version : متدي براي ريلود كردن فرم مي خوام



hamidl2ez4
یک شنبه 23 فروردین 1388, 12:55 عصر
سلام.. مرسی از فعالیت های خوبتون که واقعا بدرد می خوره..
من دنبال یه متد میگردم که باهاش بتونم فرم رو reload کنم یعنی کاری مثل ریلود کردن انجام بده که فرم رو ببنده و دوباره باز کنه..
میخوام ازش برای دکمه ی New توی بازی فکر و بکر استفاده کنم
الان برای دکمه ی New بازیم مجبورم 100 خط برنامه بنویسم تا تمام خصوصیت های کنترل ها رو که در حین بازی تغییر کرده بروز اول در بیاره.. اما اگر یه همچین متد یا تابعی پیدا کنم که فرم رو ریلود کنه دیگه نیازی نیست که اینهمه خط الکی نوشته بشه..
ممنون میشم اگر راهنماییم کنین..
بای

Babak.Hassanpour
یک شنبه 23 فروردین 1388, 13:23 عصر
سلام.. مرسی از فعالیت های خوبتون که واقعا بدرد می خوره..
من دنبال یه متد میگردم که باهاش بتونم فرم رو reload کنم یعنی کاری مثل ریلود کردن انجام بده که فرم رو ببنده و دوباره باز کنه..
میخوام ازش برای دکمه ی New توی بازی فکر و بکر استفاده کنم
الان برای دکمه ی New بازیم مجبورم 100 خط برنامه بنویسم تا تمام خصوصیت های کنترل ها رو که در حین بازی تغییر کرده بروز اول در بیاره.. اما اگر یه همچین متد یا تابعی پیدا کنم که فرم رو ریلود کنه دیگه نیازی نیست که اینهمه خط الکی نوشته بشه..
ممنون میشم اگر راهنماییم کنین..
بای
فقط کافیه رویداد لود رو دوباره فراخوانی کنی.اونوقت کل کدهاش ازاول اجرا میشن


Call Form_Load

butterfly8528
یک شنبه 23 فروردین 1388, 15:06 عصر
دوست عزیز منظورتون رو خوب متوجه نشدم ولی فکر میکنم کد زیر کمکتون کنه . :لبخندساده:


form1.Refresh

موفق باشید .

hamidl2ez4
یک شنبه 23 فروردین 1388, 16:33 عصر
دوست عزیز منظورتون رو خوب متوجه نشدم ولی فکر میکنم کد زیر کمکتون کنه . :لبخندساده:


form1.Refresh

موفق باشید .

سلام مرسی که جواب دادین.. اما form.refresh کاری که من می خوام انجام نمیده.. منظور من ریلود.. یعنی مثلا کاری بکنه که انگار شما یک بار فرم را بستی و دوباره باز کردی..
ببین مثلا توی بازی فکر و بکر دارم مینویسم کاربر یکسری رنگ رو انتخاب میکنه و این رنگها با رنگی شدن backcolor لیبل ها نشون داده میشن.. حالا اگه من بخوام یک دکمه به عنوان New Game داشته باشم باید بیام با نوشتن دستور توی دکمه ی new تمام لیبل هارو به رنگ اولشون در بیارم.. اما وقتی برنامه رو ببندی و دوباره بازش کنی تمام کنترل ها به حالت اول برگشتن..
حالا من تابع یا متدی می خوام که یه کاری شبیه بسته و باز کردن برنامه انجام بده..

hamidl2ez4
یک شنبه 23 فروردین 1388, 16:39 عصر
دوست عزیز منظورتون رو خوب متوجه نشدم ولی فکر میکنم کد زیر کمکتون کنه . :لبخندساده:


form1.Refresh

موفق باشید .


فقط کافیه رویداد لود رو دوباره فراخوانی کنی.اونوقت کل کدهاش ازاول اجرا میشن


Call Form_Load


این دستور فقط رویداد Fomr_Load رو دوباره اجرا میکنه اما خصوصیت های کنترل های من برنمیگرده.. مثلا کامند باتمی که من در حین اجرا ویزیبلشو فالز کردم برای اینکه دوباره ترو بشه باید یا بیام و دوباره با دستور ترو بکنمش یا اینکه برنامه رو ببندم و دوباره باز کنم..
حالا من یک دستور می خوام که برنامه رو ببنده و دوباره باز کنه

Babak.Hassanpour
یک شنبه 23 فروردین 1388, 16:56 عصر
خشت اول چون نهد معمار کج تا ثریا می رود دیوار کج


شما واسه تکرار فرم لود روش می خواستی که ذکر شد.حالا یه مشکل با دکمه داری.فردا با صد تا چیز دیگه .اگه از اول درست برنامه ریزی و اجرا می کردی الان لازم نبود اینطوری وصله پینه بزنی.

اما واسه اینکه دست خالی نری تو روال لود فرم دکمه ها رو به وضعیت اجرای اولیه ست کن تا با هر بار فراخونی انگار طوری به نظر برسه که برنامه از اول اجرا شده.

یه راه دیگه هم اینه که یه فایل اجرایی کنار برنامت بزاری که کارش این باشه که پس از اجرا بعد از یکی دو ثانیه برنامه اصلی رو اجرا کنه .تو روال دکمه ریست هم دستور اجرای برنامه لودر رو میدی و برنامه خودشو می بنده.


Shell App.path & "\loader.exe"
end

Mbt925
یک شنبه 23 فروردین 1388, 17:01 عصر
توجه داشته باشید که Reload کردن فرم با Refresh کردن اون متفاوته.
تفاوت رو بررسی کنید.

برای Reload کردن فرم مشخصه که یک بار باید فرم رو Unload کنید و دوباره Load کنید.





UnLoad FromX
Load FromX

hamidl2ez4
یک شنبه 23 فروردین 1388, 17:15 عصر
خشت اول چون نهد معمار کج تا ثریا می رود دیوار کج


شما واسه تکرار فرم لود روش می خواستی که ذکر شد.حالا یه مشکل با دکمه داری.فردا با صد تا چیز دیگه .اگه از اول درست برنامه ریزی و اجرا می کردی الان لازم نبود اینطوری وصله پینه بزنی.

اما واسه اینکه دست خالی نری تو روال لود فرم دکمه ها رو به وضعیت اجرای اولیه ست کن تا با هر بار فراخونی انگار طوری به نظر برسه که برنامه از اول اجرا شده.

یه راه دیگه هم اینه که یه فایل اجرایی کنار برنامت بزاری که کارش این باشه که پس از اجرا بعد از یکی دو ثانیه برنامه اصلی رو اجرا کنه .تو روال دکمه ریست هم دستور اجرای برنامه لودر رو میدی و برنامه خودشو می بنده.


Shell App.path & "\loader.exe"
end


آقا واقعا مرسی, این دقیقا همون چیزی بود که من می خواستم.. مشگلم حل شد.. با همین یک خط کد 100 خط از برنامه کم شد.. حالا کامل که شد میزارمش تا ببینید و نظر بدید.. ممنون..

butterfly8528
یک شنبه 23 فروردین 1388, 22:49 عصر
توجه داشته باشید که Reload کردن فرم با Refresh کردن اون متفاوته.
تفاوت رو بررسی کنید.


Mbt925 عزیز میشه زحمت بکشی و تفاوت این دو رو برای ما توضیح بدی ؟

با تشکر :تشویق: