در مورد سوال اول، برای بستن یه فرم که به صورت 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 (با اندکی تغییر)