ورود

View Full Version : باز و بستن چند فرم به از طریق 1 فرم



moohssenn
پنج شنبه 03 خرداد 1386, 19:05 عصر
سلام
دوستان من یه فرم دارم که از طریق منو با showmodal بازش میکنم .( مثلا form1 )
بعد از طریق این فرم با زدن هر کلید یک فرم دیگه باید باز بشه .
سئوال اولم اینه که برای باز کردن فرمهای جدید از show استفاده کنم یا از showmodal ؟
و سوال بعدیم اینه که اگه مثلا فرم دوم که باز است ( یعنی از طریق form1 باز شده ) ما بخواهیم با یک دکمه هم form1 و هم فرم دوم بسته بشه و دوباره به برنامه بازگردیم بهترین راه چیه ؟
دنبال روشی میگردم که با بستن فرم دوم این دو فرم از حافظه سیستم از بین بره و دیگه فضائی رو اشغال نکنه
مرسی

SYNDROME
پنج شنبه 03 خرداد 1386, 19:37 عصر
با سلام

سلام
سئوال اولم اینه که برای باز کردن فرمهای جدید از show استفاده کنم یا از showmodal ؟

بستگی به کارتون دارد.
از می خواهید فرمی که فرم جدید را صدا زده قفل شود از showmodal و در غیر این صورت(قفل نشود) از Show استفاده کنی.


و سوال بعدیم اینه که اگه مثلا فرم دوم که باز است ( یعنی از طریق form1 باز شده ) ما بخواهیم با یک دکمه هم form1 و هم فرم دوم بسته بشه و دوباره به برنامه بازگردیم بهترین راه چیه ؟

یکی از راههایی که می توانی امتحان کنی این است که لیست فرم ها را به ترتیب باز شدن در یک آرایه ذخیره کنی.سپس بعد از بستن فرم 1 کلیه فرمهایی که بعد از آن باز شده است را ببندی.
راستی اگر شما از showmodal استفاده کنی به ترتیبی که فرمها را باز کرده ای باید برعکس آن ببندی(فرم1 که فرم 2 را باز کرده است الان قفل است تا فرم 2 را نبندی نمی توانی فرم1 را ببندی)(LIFO)

moohssenn
پنج شنبه 03 خرداد 1386, 19:49 عصر
ضمن تشکر فراوان
من وقتی از طریق فرم دوم میام فرم اول و خود فرم دوم را میبندم , این اتفاق نمیفته مثلا در مورد بستن از طریق فرم دوم کد زیر را مینویسم :


form1.close;
form2.close;

آین کد چه مشکلی داره ؟

SYNDROME
پنج شنبه 03 خرداد 1386, 20:03 عصر
با سلام

ضمن تشکر فراوان
من وقتی از طریق فرم دوم میام فرم اول و خود فرم دوم را میبندم , این اتفاق نمیفته مثلا در مورد بستن از طریق فرم دوم کد زیر را مینویسم :


form1.close;
form2.close;

آین کد چه مشکلی داره ؟
1-دستور Close فرم رو می بندد ولی از حافظه پاک نمی کند.
( اتفاق نمیفته )یعنی چی می شه؟

Hamid_PaK
پنج شنبه 03 خرداد 1386, 20:59 عصر
اگر فرمهات رو اینطوری ایجاد کنی بعد از بسته شدن از حافظه خارج می شوند ...


frm01 := Tfrm01.Create(nil);
try
frm01.ShowModal;
finally
frm01.Free;
end;


یا حق ...

moohssenn
پنج شنبه 03 خرداد 1386, 23:58 عصر
دوستان ممنون . با راهنمائیهای شما مشکلم حل شد