سلام
من همیشه فراری هستم از اینکه به کاربرم اجازه باز کردن چند فرم بدهم. اما الان مجبور شدم!!
فرض کنید من دو تا فرم با نامهای زیر دارم
Form1:Tform1
Form2:Tform2
می خواهم روی فرم اول یک کلید بگذارم که با زدن آن فرم دوم باز شود ولی به فرم اول هم دسترسی داشته باشد. ضنما فرم دوم Auto-Create نیست و موقع زدن کلید ساخته میشود.
یک همچین چیزی:
frm2:=Tform2.Create(self);
frm2.show;
تا اینجا که ساده بود. اما می خواهم اولا موقعی که فرم دوم بسته شد free شود و ضمنا موقعی که روی کلید زده میشود اگر فرم دوم قبلا ساخته شده بود دیگر کاری انجام ندهد.
البته در onClose فرم دوم Action:=caFree; را قرارداده ام که ظاهرا باید موقع بسته شدن فرم آن را آزاد کند.
همچنین در زمانی که کلید زده میشود با assigned چک میکنم:
if not Assigned(frmPM) then begin
frm1:=TForm1.Create(Self);
frm.Show;
end;
اما با این کد یک بار فرم دوم ساخته و نمایش داده میشود ولی اگر فرم بسته شد دیگر ساخته نمی شود و خروجی تابع Assigned همچنان true برمیگرداند!