View Full Version : چگونه می توان Create بودن یک فرم را چک کرد؟
aras12000
شنبه 23 اردیبهشت 1385, 11:51 صبح
سلام
من از یکسری فرم MDI استفاده می کنم که خودم مثلا با فشرده شدن یک کلید یکی از آنها را Create می کنم. همانطور که می دانید او می تواند آن را Minimize کند و دوباره آن کلید را بزند و من نمی دانم چگونه کنترل کنم که این فرم Minimize است و دوباره Create نکنم و فقط restore کنم؟
ممنون
mzjahromi
شنبه 23 اردیبهشت 1385, 11:53 صبح
فرمهائی که در زمان اجرا Create می شوند (http://www.barnamenevis.org/forum/showthread.php?t=30636&highlight=Create)
ghabil
شنبه 23 اردیبهشت 1385, 17:44 عصر
اینا که دوستات گفتن درست هستند به شرطی که پوینتر فرم رو داشته باشی ، یعنی همون Form1 رو داشته باشی ، ولی خیلی پیش میاد که آدم نمی تونه یک متغیر Global برای فرمهاش تعریف کنه (مثل برنامه های مالتی ترد) ، یا اینکه مطمئن نیستی که فرمی که تعریف شده حتما پوینترش توی متغییری که تو انتظار داری ، این راهی که اینجا میزارم هر Instanceی از فرم مورد نظرت که وجود داشته باشه رو بهت میده بدون نیاز به داشتن پوینتر گلوبالش ...
type
TClassForm = class of TForm
...
function FindForm(AFormClass: TClassForm): TForm;
var
i: integer;
begin
Result := nil;
for i:= 0 to screen.FormCount -1 do
if Screen.Forms[i] is AFormClass then
begin
Result := Screen.Forms[i];
exit;
end;
end;
بعد مثلا میتونید اینطوری استفاده کنید :
var
AForm: TTestForm;
begin
AForm := FindForm(TTestForm) as TTestForm;
if Assigned(AForm) then AForm.Show
end;
پ . ن : قبل از اینکه F7 معلم دیکته چشمک بزنه بگم منظورم در تمام این متن از پوینتر همون Class Refrence بود...
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.