ورود

View Full Version : جلوگیری از Active شدن فرم



mehran2000_544
چهارشنبه 18 شهریور 1388, 13:56 عصر
سلام.
فرض کنید دو تا فرم ایجاد کرده ایم و می خواهیم در صورتی که فرم دوم روی فرم اول باز شد، با کلیک کردن روی فرم اول، این فرم Active نشود. این کار به این دلیل است که نمی خواهیم تا زمانی که فرم دوم باز است با کلیک روی فرم اول، فرم دوم ناپدید شود و زیر فرم اول برود.
برای این کار شاید بهترین راه حل این باشد که در رویداد OnClick فرم اول با تعیین شرایطی بنویسیم: Form1.Active:=False; اما مشکل اینجاست که متد Active با اینکه از نوع Boolean است اما هیچ کدام از مقادیر True و False را نمی پذیرد.
شما چه راه حلی پیشنهاد می کنید؟

AbiriAmir
پنج شنبه 19 شهریور 1388, 10:45 صبح
سلام
اگر ارور هنگام نوشتن کدتان رو بخونید متوجه میشید که active یک متغیر Read Only هست و شما نمیتونید در برنامه مقدارش رو عوض کنید.

AbiriAmir
پنج شنبه 19 شهریور 1388, 10:48 صبح
میتونید OnClick فرم یک بنویسید

Form2.BringToFront;

یا اصلا فرم 2 رو Show نکنین
ShowModal کنید

یا Enabled فرم 1 رو False کنید

majid_ramak
پنج شنبه 19 شهریور 1388, 11:14 صبح
دوست عزیز شما یه تاپیک با همین نام و همین موضوع ایجاد کردی، چرا یه تاپیک دیگه ایجاد می کنید؟
(و در همون تاپیک قبلی جوابتون رو گرفتین)

AbiriAmir
پنج شنبه 19 شهریور 1388, 11:15 صبح
البته تاپیک اول این بوده
اون یکی بعد از این ایجاد شده

BORHAN TEC
جمعه 20 شهریور 1388, 13:37 عصر
بهترین کار این است که به جای استفاده از متد Show برای نمایش فرم از متد ShowModal استفاده کنیم که به طور اتوماتیک فرم اولی را غیر فعال میکند و فرم دوم را نمایش می دهد و تا زمانی که فرم دوم بسته نشود ، فرم اولی فعال نمی شود .


Form2.ShowModal;