PDA

View Full Version : کار با فرمهای MDI و Child



babak869
جمعه 07 بهمن 1384, 15:40 عصر
با سلام
من در باره کا با فرمهای Mdi و Child کمی مشکل دارم.من یه برنامه دارم که یه فرم اصلی داره و چند فرم فرعی فرم اصلی نمای اصلی برنامه و قسمت انتخاب کاربر است و با زدن هر دگمه به قسمتهای برنامه مثل ثبت اطلاعات جستجو و .... میره.من میخوام مانند برنامه فتوشاپ که وقتی یه پنجره جدید باز میشه موقع بستن کاملا اون فرم ناپدید بشه.اما من وقتی یک یا چند فرم رو با خاصیت MdiChild به فرم اصلی با خاصیت MdiForm مرتبط میکنم و زمانی که فرمهای Child رو close میکنم Minimize شده و پایین گوشه فرم اصلی میره ما من میخوام زمانی که close میزنم کاملا فرم بسته بشه و از حافظه بیرون بره.امیدوارم تونسته باشم مشکلم رو کامل توضیح داده یاشم.از دوستان اگه کسی راه حل رو میدونه لطفا کمک کنه
با تشکر

Touska
شنبه 08 بهمن 1384, 12:14 عصر
در onclose فرم پسر از action رو به cafree تغییر بدهید.

موفق باشید.

babak869
شنبه 08 بهمن 1384, 19:10 عصر
ببخشید میشه کمی بیشتر توضیح بدید چون خوب متوجه نشدم .از action به cafree منظورتون چیه؟؟؟
ممنونم

Touska
شنبه 08 بهمن 1384, 19:35 عصر
توی Onclose این کد را بنویسید :


Action := Cafree;

البته تو Onclose فرم پسر.

babak869
شنبه 08 بهمن 1384, 20:47 عصر
دستت درد نکنه اما برای فراخوانی مجدد فرم دیگه نمیشه یعنی


Form2.Show;

دیگه جواب نمیده.اگه اینو هم بگی ممنون میشم

Touska
یک شنبه 09 بهمن 1384, 08:40 صبح
ببین شما باید فرم هاتونو خودتون بسازید و نمایش بدید.


Var
Form2 : TForm2;
begin
Form2 := TForm2.Create(Application);

Form2.Show;

babak869
یک شنبه 09 بهمن 1384, 16:14 عصر
توسکای عزیز سلام
دستت درد نکنه .مشکلم حل شد
متشکرم

babak869
یک شنبه 09 بهمن 1384, 18:50 عصر
راستی یه سوال دیگه ؟؟
استفاده از این روش برای برنامه های بزرگ مثلا حسابداری و یا ... برنامه هایی که از دیتابیس استفاده می کنند و چند فرمی هستند مشکلی پیش نمیاره ؟ به عنوان مثال صفحه اول شامل منوهای اصلی و توضیحاتی از برنامه باشه و کاربر با زدن گزینه های منوها وارد صفحات اصلی برنامه بشه؟؟؟
متشکرم

Touska
دوشنبه 10 بهمن 1384, 08:13 صبح
بر عکس توی برنامه های بزرگ از این روش استفاده می کنند تا فرمها بیخودی فضای حافظه رو

مشغول نکنن.

mamizadeh
دوشنبه 10 بهمن 1384, 15:28 عصر
راستی یه سوال دیگه ؟؟
استفاده از این روش برای برنامه های بزرگ مثلا حسابداری و یا ... برنامه هایی که از دیتابیس استفاده می کنند و چند فرمی هستند مشکلی پیش نمیاره ؟ به عنوان مثال صفحه اول شامل منوهای اصلی و توضیحاتی از برنامه باشه و کاربر با زدن گزینه های منوها وارد صفحات اصلی برنامه بشه؟؟؟
متشکرم
با سلام دوست عزیز درسته که فضولی می کنم ولی اگه ببخشید می خوام بگم که
آفای توسکا درست می گن من برای این منظور بک فرم با این شرایط ژدر و فرزندی ایجاد کردم و از یک فرم حجیم که interfase سنگینی داشت و همچنین متغییر های عمومی زیادی تعریف شده بود را در برنامه اجرا کردم و بعد task bar را باز کرده و از آن فرم حدود 50 پشت سر هم باز کردم و دیدم که فقط یک مگابایت افزایش پیدا کرد.
البته این اون چیزی بود که من دیدم در حالی که اگر این فرم ها به صورت پدر و فرزندی نباشند شاید 3یا 4 مگابایت افزایش پیدا می کرد.
با تشکر محمد ممی زاده

babak869
دوشنبه 10 بهمن 1384, 20:23 عصر
ممنون از جواب توسکا و محمد عزیز
متشکرم.موفق باشید