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

نام تاپیک: بستن فرم هنگام خارج شدن فوکوس

  1. #1

    بستن فرم هنگام خارج شدن فوکوس

    میخواهم یک فرم را نمایش داده و بعد از دریافت پاسخ از آن فرم عملی را انجام دهم. پاسخ اینطور بنظر میرسد که از دستور ShowModal و پارامتر ModalResult استفاده کنم. حال سوال این است چگونه میتوان هنگامی که خارج از این فرم کلیک کردم فرم بسته شود و پاسخ آن mrNone باشد؟
    حالت دوم: میتوان بجای فرم از یک پانل استفاده کرد به شرطی که اولا همچون فرم در تمام یونیتهای برنامه قابل نمایش باشد. دوما شناور باشد. سوما تا زمان دریافت پاسخ از آن پانل, برنامه اجرای ادامه دستورات را متوقف کند. بهترین و کوتاه ترین کد برای این حالت چه میتواند یاشد؟
    با تشکر

  2. #2

    نقل قول: بستن فرم هنگام خارج شدن فوکوس

    میخواهم یک فرم را نمایش داده و بعد از دریافت پاسخ از آن فرم عملی را انجام دهم. پاسخ اینطور بنظر میرسد که از دستور ShowModal و پارامتر ModalResult استفاده کنم. حال سوال این است چگونه میتوان هنگامی که خارج از این فرم کلیک کردم فرم بسته شود و پاسخ آن mrNone باشد؟
    پاسخ یک فرم از نوع modal نمیتواند mrNone باشد.
    حالت دوم: میتوان بجای فرم از یک پانل استفاده کرد به شرطی که اولا همچون فرم در تمام یونیتهای برنامه قابل نمایش باشد. دوما شناور باشد. سوما تا زمان دریافت پاسخ از آن پانل, برنامه اجرای ادامه دستورات را متوقف کند. بهترین و کوتاه ترین کد برای این حالت چه میتواند یاشد؟
    بهتره که از کامپوننت TJvCaptionPanel که در مجموعه JVCL قرار داره استفاده کنید.

  3. #3
    کاربر دائمی آواتار SAASTN
    تاریخ عضویت
    خرداد 1385
    محل زندگی
    تهران
    سن
    39
    پست
    730

    نقل قول: بستن فرم هنگام خارج شدن فوکوس

    در مورد سوال اول، برای بستن یه فرم که به صورت Modal نمایش پیدا کرده، مقدار ModalResult حتما باید به مقداری غیر صفر تغییر کنه. حتی اگه شما فرم رو Close کنید مقدار ModalResult به mrCancel تغییر خواهد کرد. پس بهتره مقدار دیگه ای رو برای نشون دادن این حالت رزرو کنید و توجه داشته باشید که این مقدار می تونه هر مقداری در بازه Integer باشه و نه لزوما مقادیر شناخته شده. اما اگه بر mrNone بودن خروجی اصرار دارید، بعد از بستن فرم خودتون ModalResult رو به mrNone تغییر بدید. اما این اتفاق باید خارج از کدهای خود فرم صورت بگیره، مثلا روی یک فرم Modal یه Botton بذارید و کد زیر رو براش بنویسید و نتیجه رو ببینید:
    procedure TForm2.Button2Click(Sender: TObject);
    begin
    Close;
    if ModalResult <> mrNone then
    ModalResult := mrNone;
    end;

    در مورد بستن فرم موقع کلیک کردن در خارج از محدوده فرم هم باید موس رو Hook کنید، در موردش تو همین بخش زیاد صحبت شده.
    اما در مورد سوال دوم، اولا لطفا سوالاتون رو در تاپیک های جداگانه مطرح کنید. تمامی مسائلی که مطرح کردید در همون فرم که بصورت Modal نمایش پیدا کرده جمع میشه. اما اگه می خواید که فرم شبیه به یه پنل دیده بشه کافیه BorderStyle فرم رو به bsNone تغییر بدید. حالا برای این که بشه این فرم رو جابجا کرد:
    https://barnamenevis.org/showthread.p...A7%DB%8C%DB%8C (با اندکی تغییر)

برچسب های این تاپیک

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

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