PDA

View Full Version : نمایش یک فرم بصورت Modal



(امید)
جمعه 04 مهر 1382, 15:51 عصر
با سلام
(اسم عنوان رو چیز مناسبی پیدا نکردم.)
تو یک فرم احتیاج دارم که فرم دیگه ایی رو فراخوانی کنم.
مثلا در فرم 1 در یک باتن 3 دستور دارم. دستور اولی فرم 2 را نمایش می دهد.و دستورات 2و3 هم کار های دیگری انجام می دهند.
حالا باید چکار کنم تا فرم دوم بسته نشده دستورات 2 و3 اجرا نشود.
با تشکر

عنوان بحث توسط کاربر DELPHIAREA تغییر داده شد.

Harry
جمعه 04 مهر 1382, 16:05 عصر
خوب می تونی از طریق متد Visible این کار را انجام دهی و چک کنی و ببینی که فرم مورد نظر در حال نمایش است و یا خیر . این متد به صورت Boolean بوده و دو مقدار True و False را برمی گرداند .
مثلا می تونی در فرم یک و در کنترل باتن این کد رو بنویسی .

procedure TForm1.Button1Click(Sender: TObject);
begin
if form2.Visible = false then
//Do Something
else
exit;
end;
end;
این کد چک می کند که آیا فرم 2 درحال نمایش است یا خیر . اگر در حال نمایش نبود و بسته بود که دستوراتی را انجام می دهد در غیر این صورت برنامه به وسیله کلمه کلیدی Exit متوقف می شود .

(امید)
جمعه 04 مهر 1382, 16:10 عصر
با سلام

هری جان من دقیقأ همین کد و کدهای دیگه ایی مثل showing و ... رو هم چک کردم.
اگه امتحان کنی همیشه جواب یکسانه.
طبق کدی که نوشتی همیشه قسمت دستورات else انجام می شه.
اینجا بحث if و else نیست. چون بعد از بسته شدن فرم 2 دیگه دستور if چک نمی شه .چون درست بعد از دستور نماشی فرم دوم دستور if چک شده.در واقع من می خوام دستور if چک نشه تا وقتی که فرم دوم بسته بشه.
امید وارم تونسته باشم مقصودم رو برسونم.

Kambiz
جمعه 04 مهر 1382, 19:27 عصر
خوب تو OnShow فرم دوم دستورات 2 و 3 رو Disable کن و تو OnHide دوباره Enable کن.

مهدی کرامتی
جمعه 04 مهر 1382, 19:31 عصر
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.ShowModal;
ShowMessage('Salam'); //this command runs only when 1st command is done.
end;

(امید)
جمعه 04 مهر 1382, 20:04 عصر
:D
همین رو می خواستم آقا مهدی

ممـــــــــــنون

امید

kamran123
جمعه 18 مهر 1382, 01:28 صبح
تازه می تونی توی رویداد OnClose فرم هم چیزی رو که می خوای بعد از بسته شدن فرم انجام بشه رو بنویسی