View Full Version : زمان تخریب فرم
Hsimple11
پنج شنبه 23 خرداد 1387, 22:09 عصر
با سلام.
من در برنامه ام تعدادی فرم دارم که در زمان نیازآنها رو میسازم. بهترین زمان برای تخریب آنها چه زمانی است؟ منظورم اینه که در چه رویدادی اونا رو تخریب کنم؟ فرض کنید 10 تا دکمه دارم که 10 فرمم رو میسازن. وقتی کار با فرمی تمام شد و کاربر دکمه دیگری را فشرد باید فرم قبلی تخریب شود.
با تشکر...
حمیدرضاصادقیان
پنج شنبه 23 خرداد 1387, 23:14 عصر
سلام.بهترین زمان زمانی است که شما از فرم خارج می شوید. میتونی اگر فرم رو Showmodal میکنی دستور freeAndnil رو بعد از Showmodal بنویسی که بوسیله دکمه این رو فراخوانی میکنی.
اگر از Show استفاده میکنی در خود رویداد Onclose فرمت فرم رو free و بعد نیز Nil کن.
اصغر (پآچ)
جمعه 24 خرداد 1387, 00:04 صبح
سلام دوست من
تو فکر کن اگه یه کاربر یه فرم رو ایجاد کرد و از اون خارج شد ولی باز نیاز به اون فرم داشت باید دوباره اون فرم رو بسازی که این کار اگه چند بار در چند دقیقه متوالی انجام بشه ممکنه سرعت برنامه رو پایین بیاره به نظر من بهترین زمان برای تخریب فرم زمانیه که کاربر دیگه هیچ احتیاجی به اون نداره میتونی یه متغییر Boolean تعریف کنی که هنگام خروج از فرم از کاربرت بپرسه باز هم به این فرم نیاز داره یا نه و اگه کاربر مقدار صحیح رو برگردوند توی رویداد اون دکمت بگی چک کنه که مقدار اون متغییرت چیه اگه صحیح بود دیگه نیازی نیست بخواد دوباره فرم رو تولید کنه
موفق و موید باشی
Hsimple11
جمعه 24 خرداد 1387, 11:46 صبح
با سلام
فکر نمیکنم اینکه هربار از کاربر سوال بشه که دیگه با این فرم کاری ندارید چیز جالبی باشه و باید هرباز create و free بشن.
با تشکر...
m-khorsandi
جمعه 24 خرداد 1387, 13:20 عصر
با توجه به حجم اشيایی كه روی فرمت هست ميتونی تصميم بگيری،
لود شدن كند فرم وابسته به تعداد كامپونتت های معمولی و متصل به db هست.
من هم روش آقای صادقيان رو تائيد ميكنم.
Hsimple11
جمعه 24 خرداد 1387, 13:32 عصر
با تشکر از همگی.
ولی من فرمهام رو close نمیکنم. درواقع چیزی شبیه یک برنامه MDI ساختم که فرمهام بر روی هم می آیند. یعنی فرمهایم را بدون Border ساختم. بنظر اساتید بهتر است فرمهام رو در هنگام hide شدن به نحوی تخریب کنم یا این مسئله باعث کند شدن سیستم میشود و اگه همه رو اول بسازم کمتر سرعت رو میگیرد؟ با توجه به اینکه تعداد فرمهام چیزی حدود 30 فرم و نسبتا سنگین هست فکر نکنم ساخت همه توسط خود کامپایلر چیز درستی باشد.
با تشکر...
حمیدرضاصادقیان
جمعه 24 خرداد 1387, 16:37 عصر
سلام.به نظر بنده اصلا درست نیست که وقتی فرمی رو میبندید در حافظه بمونه.لزومی نداره.اومدیم طرف اصلا تا ساعتها نیازی به اون فرم نداشت.چه دلیلی داره در حافظه بمونه؟ الان من در برنامه خودم چیزی حدود 200 فرم دارم. همشونو بدون استثنا زمانی که نیاز دارم ایجاد میکنم به جز فرم Data Module .
اصلا هم در کندی اثری نمیگذاره. فکر نمیکنم یک مشتری بخواد یک صفحه رو در یک دقیقه 10 بار بازو بسته بکنه.!!!!!!!!
من در سیستم مالی که اینکارو کردم اصلا به مشکلی برنخوردم. و خیلی هم راحت هستم.هر وقت در هرجایی از برنامه یک فرم رو نیاز داشتم اول چک میکنم اگر وجود نداشت مجدد می سازم کارمو میکنم بعدش هم اونو Free میکنم.
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.