PDA

View Full Version : باز کردن فرم فرزند به صورت showmodal



ALIreza_nil
دوشنبه 19 مرداد 1383, 08:00 صبح
با سلام
سه تا سئوال دارم
یک-چطوری میشه یک فرم
MDIChild
را به صورت
showmodal
بازکرد یعنی به این صورت که اگه از طریف یک فرم فرزند دیگه صدا زده شد فرم صدا زننده را به وتمام فرم های باز دیگخه را به صورت غیرفعال در آورد
دوم-اینکه چطور میشه یک فرم فرزند را به صورت دستی بست
سوم-یک سئوال کلی این روش طراحی فرم های برنامه که به صورت پدر فرزندی است
مزایا ومعایب را لطف کنید اگه کسی می دونه بگه چون من یک برنامه شروع کردم
میخواهم اگه دارم اشتباه میکنم ومشکلاتی در انتظارم هست این را پیش نبرم و از همان حالت نرمال استفاده کنم
شرمنده یک سئوال دیگه
استفاده از کامپونت های
DBEDIT,DBGRID,....
بهتر میشه برنامه را کنترل کرد یا بوسیله روش دستی اطلاعات را خروج و وارد کردن؟
:)

orion188
دوشنبه 19 مرداد 1383, 08:32 صبح
سلام
من فعلا" فقط جواب سوال آخر آخری رو بهتون بگم.
استفاده از DBGrid معمولا"! راحت تر از یه StringGrid هست. البته اگه با تمام جزئیاتش بدونین چطور کار کنین.
در غیر این صورت براتون فقط محدودیت ایجاد میکنه. و اگه بعضی اقدامات رو انجام ندین ، توی قسمتهای دیگه ، سرعت برنامتون رو پایین میاره.
در مورد استفاده از DBEdit من زیاد نظری ندارم. البته اگر فقط میخواین نمایش بدین اطلاعات رو ، از همین استفاده کنین خوب راحت تره

موفق باشین

v_shalchian
دوشنبه 19 مرداد 1383, 09:16 صبح
برای بستن فرم فرزند به صورت دستی , در رویداد onClose از فرم فرزند بنویسید :


Action :=caFree ;

حالا هر زمان که فرمان بستن این فرم صدا شود فرم بسته خواهد شد.

در ضمن بهتر بود ابتدا قوانین سایت رو می خوندید.به خصوص قانون شماره 11
http://www.barnamenevis.org/forum/rules.php#11

_alish_
دوشنبه 19 مرداد 1383, 09:25 صبح
در مورد MDI مثالی در Demo است نگاه کنید
در مورد ShowModal فکر نکنم شما بتوانید یک MDIChild را بتوانید ShowModal کنید ولی می توانید یک فرم معمولی را برای آن Modal کنید.
در مورد DB ها عرض کنم من سعی کردم آنها را فقط برای نمایش استفاده کنم زیرا کنترل آنها سخت تر از کنترل های معمولی است که مستقیما به DataSet متصلند من برای نوشتن از کنترلهای معمولی استفاده می کنم و با دستورات Insert, Post , مقدار دهی فیلدها آنها را در بانک ذخیره می کنم.

ALIreza_nil
دوشنبه 19 مرداد 1383, 10:27 صبح
ممنون از همه

ALIreza_nil
دوشنبه 19 مرداد 1383, 10:38 صبح
سئوال من راجع به بستن فرم این بود که دستور بستن این جور فرم ها چی؟؟

برای مثال

Form1.close;
با این دستور سیستم خطا می گیره
:)

v_shalchian
دوشنبه 19 مرداد 1383, 12:23 عصر
دستور بستن فرمهای فرزند هم همون Close است و نباید خطا بگیره.کدی هم که من نوشتم برای این بود که با دستور Close فرم کامل بسته نمی شود.ولی با این کد کاملا بسته میشه.
میشه متن پیغام خطا را بنویسید.

_alish_
دوشنبه 19 مرداد 1383, 13:39 عصر
در MDIChild شما فرم را به طور پویا Create می کنید

F:=TForm2.Create(Self);

برای بستن در قسمت OnClose

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
را بنویس

مهدی کرامتی
دوشنبه 19 مرداد 1383, 14:00 عصر
فرمهای MDIChild را نمیتوان بصورت Modal باز کرد.

vcldeveloper
سه شنبه 20 مرداد 1383, 08:12 صبح
مزایا ومعایب را لطف کنید اگه کسی می دونه بگه چون من یک برنامه شروع کردم
میخواهم اگه دارم اشتباه میکنم ومشکلاتی در انتظارم هست این را پیش نبرم و از همان حالت نرمال استفاده کنم
الان دیگه کمتر از فرم های MDI استفاده میشه. کلا مایکروسافت هم دیگه این روش رو قبول نداره. معروفترین برنامه MDI مایکروسافت همون Office بود که اونم دیگه MDI نیست.

Mohammadi_A
چهارشنبه 16 خرداد 1386, 18:09 عصر
در مورد ShowModal فکر نکنم شما بتوانید یک MDIChild را بتوانید ShowModal کنید ولی می توانید یک فرم معمولی را برای آن Modal کنید.

میشه راهنماییم کنید که چطور میشه یه فرم فقط برای یه Mdi مودال باشه و در صورت انتخاب سایر Mdiها این فرم نمایش داده نشه


با تشکر

SYNDROME
پنج شنبه 17 خرداد 1386, 12:04 عصر
با سلام

میشه راهنماییم کنید که چطور میشه یه فرم فقط برای یه Mdi مودال باشه و در صورت انتخاب سایر Mdiها این فرم نمایش داده نشه
با تشکر
می توانید در زمانی که فرم می خواهد فراخوانی شود خاصیت های آن را تنظیم کنید.