نمایش نتایج 1 تا 7 از 7

نام تاپیک: بستن یک فرم Child !!

  1. #1

    بستن یک فرم Child !!

    با سلام
    من میخوام با کلیک بر روی یکی از منوهام در فرم اصلی که از نوع MDI هست ، یک فرم از نوع Child رو ببندم ...
    راستش هرکاری میکنم نمیشه ...
    من این فرم رو با استفاده از یک متغیر که به نام این فرم ( TMyChildForm ) نسبت دادم Create می کنم و نمایش میدم ، حالا میخوام که این فرم رو ببندم ولی وقتی دستور Close رو بعد از نام اون فرم می نویسم ، فرم بسته نمیشه !!! ( مشکل از Action در Event مربوط به OnClose نیست ، اون رو برابر با CaFree قرار دادم ) ، دستور Close رو برای متغیر هم مینویسم جواب نمیده ...
    من با یک شرط این کار رو میکنم ، یعنی از متغیر X که از نوع Boolean هست ، مقدار True داشت ، فرم بسته بشه و اگه مقدار False داشت ، فرم Child مورد نظر Create و بعد هم نمایش داده بشه ...
    وقتی فرم رو Free هم میکنم در هنگام خروج از برنامه یک AV نمایش داده میشه ولی فرم بسته نمیشه !

    به هر حال منتظر راهنمایی دوستان هستم ...

    موفق باشید ...

  2. #2
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814
    با سلام
    در منوی خود که باید فرم مورد نظر باز شود دستور زیر را بنویس.

    Form_Temp := TForm_Temp.Create(Owner);
    Form_Temp.Show;

    و سپس در Oncloseمربوط به فرم Form_Temp دستور زیر را بنویسید.(دستور فوق را در آخرین خط OnClose بنویسید)

    Form_Temp.Free;

    موفق باشید

  3. #3
    سلام
    ممنون ...
    با سلام
    در منوی خود که باید فرم مورد نظر باز شود دستور زیر را بنویس.

    کد:
    Form_Temp := TForm_Temp.Create(Owner);
    Form_Temp.Show;و سپس در Oncloseمربوط به فرم Form_Temp دستور زیر را بنویسید.(دستور فوق را در آخرین خط OnClose بنویسید)

    کد:
    Form_Temp.Free;موفق باشید
    مشکل از این قسمت نیست ...
    ( مشکل از Action در Event مربوط به OnClose نیست ، اون رو برابر با CaFree قرار دادم )
    Action که برابر با CaFree باشه ، فرم موقع بستن Free میشه ...

    مشکل اینجاست که اصلا فرم بسته نمیشه ... !!

  4. #4
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814
    با سلام
    البته من یک کلک زدم.
    فرم را در حالت معمولی به صورت Normalقرار دادم و بعد از Create فرم آن را Child کردم و سپس Show را اجرا کردم و بقیه ماجرا.
    این کار را بکن ببین مشکلت حل می شود.
    موفق باشی

  5. #5
    کاربر دائمی آواتار Hamid.Kad
    تاریخ عضویت
    آبان 1385
    محل زندگی
    پُشت هیچستانم...
    پست
    349
    متد free بعد از انجام یک سری عملیات، متد Destroy رو فراخوانی میکنه.
    احتمالاً جایی که فرم شما داره Free میشه یه اشکالی وجود داره که Destroy رو اجرا نمیکنه، مثلاً ممکنه تو یه جای دیگه داره ازش استفاده میشه.
    برای اینکه ببینید مشکل از اینه یا نه بجای Free متد destroy رو بذارید ببینید فرمتون بسته میشه

  6. #6
    مثلاً ممکنه تو یه جای دیگه داره ازش استفاده میشه.
    چی توی یه جای دیگه داره استفاده میشه؟ Destroy؟! این چه ربطی به اجرا نشدن Destroy داره؟!
    در ضمن بارها توضیح داده شد که از Destroy نباید بجای Free استفاده کرد.

    موفق باشید


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  7. #7
    کاربر دائمی آواتار Hamid.Kad
    تاریخ عضویت
    آبان 1385
    محل زندگی
    پُشت هیچستانم...
    پست
    349
    جناب کشاورز منظور بنده اینه که برای اینکه بدونند متد Destroy فراخوانی میشه یا نه ( برای بستن فرم) اون رو مستقیم احضار کنند. چون اگه متد Free به هر اشکالی برخورد کنه دیگه متد Destroy رو فراخوانی نمیکنه. حرف شما کاملاً متینه.متد Free ایمن تر از Destroy است.

تاپیک های مشابه

  1. محل قرار گیری فرمهای child
    نوشته شده توسط hooooman در بخش VB.NET
    پاسخ: 1
    آخرین پست: دوشنبه 25 تیر 1386, 10:45 صبح
  2. جستجو کنترلهای یک فرم Child
    نوشته شده توسط MShirzadi در بخش VB.NET
    پاسخ: 3
    آخرین پست: سه شنبه 12 دی 1385, 13:30 عصر
  3. کار با فرمهای MDI و Child
    نوشته شده توسط babak869 در بخش برنامه نویسی در Delphi
    پاسخ: 10
    آخرین پست: دوشنبه 10 بهمن 1384, 20:23 عصر
  4. ساختن فرم MDI و Child
    نوشته شده توسط bachemosbat در بخش C#‎‎
    پاسخ: 2
    آخرین پست: چهارشنبه 06 مهر 1384, 03:38 صبح
  5. ریختن چند رکورد جدول child در جدول جدید
    نوشته شده توسط mehdi3683 در بخش VB.NET
    پاسخ: 3
    آخرین پست: یک شنبه 28 تیر 1383, 13:13 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •