如何依序判斷表單是否已存在(建立)? |
尚未結案
|
nachi
初階會員 ![]() ![]() 發表:40 回覆:116 積分:31 註冊:2003-02-26 發送簡訊給我 |
一個MDI的專案,若裡面有N個子表單,每當選擇一個表單時時,就要寫一段程式判斷表單是否已建立,想問看看是否有更簡易的方法。 例.有n個表單,則下面程式就要寫n次@@
procedure TForm1.N5Click(Sender: TObject); begin if application.FindComponent('fomr5')=nil then begin application.CreateForm(tform5,form5); form5.show; end; end; |
tech_state
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
引言: 一個MDI的專案,若裡面有N個子表單,每當選擇一個表單時時,就要寫一段程式判斷表單是否已建立,想問看看是否有更簡易的方法。 例.有n個表單,則下面程式就要寫n次@@nachi, 您好 您可以寫一個Function去判斷某個Form是否已存在, 不存在再Create就好了。 Sorry, 我不會Delphi只能給您觀念, 其餘的請您自行做了。 ======================= 是非終日有,不聽自然無 天下本無事,庸人自擾之procedure TForm1.N5Click(Sender: TObject); begin if application.FindComponent('fomr5')=nil then begin application.CreateForm(tform5,form5); form5.show; end; end; |
Justmade
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
procedure TForm1.NewForm(FormClass: TFormClass; Form: TForm; Name : String); begin Form := TForm(application.FindComponent(Name)); if not Assigned(Form) then application.CreateForm(FormClass,Form); Form.show; // always show it end; procedure TForm1.Form21Click(Sender: TObject); begin NewForm(TForm2,Form2,'Form2'); end; procedure TForm1.Form31Click(Sender: TObject); begin NewForm(TForm3,Form3,'Form3'); end;發表人 - Justmade 於 2003/05/05 23:01:50 |
Justmade
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
這樣寫程式碼雖較長一點,但可省回一個參數,且效能應更高 :
procedure TForm1.NewForm(FormClass: TFormClass; Form: TForm); var i : integer; begin for i := 0 to Screen.FormCount - 1 do if Screen.Forms[i] is FormClass then begin Form := Screen.Forms[i]; break; end; if not Assigned(Form) then application.CreateForm(FormClass,Form); Form.show; // always show it end; procedure TForm1.Form21Click(Sender: TObject); begin NewForm(TForm2,Form2); end; procedure TForm1.Form31Click(Sender: TObject); begin NewForm(TForm3,Form3); end; |
nachi
初階會員 ![]() ![]() 發表:40 回覆:116 積分:31 註冊:2003-02-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |