masoode
چهارشنبه 30 خرداد 1403, 17:24 عصر
سلام
من همیشه فراری هستم از اینکه به کاربرم اجازه باز کردن چند فرم بدهم. اما الان مجبور شدم!!
فرض کنید من دو تا فرم با نامهای زیر دارم
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 برمیگرداند!
من همیشه فراری هستم از اینکه به کاربرم اجازه باز کردن چند فرم بدهم. اما الان مجبور شدم!!
فرض کنید من دو تا فرم با نامهای زیر دارم
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 برمیگرداند!