Child MDI Form 如何不讓他Create兩次 |
|
mouse3766
一般會員 發表:4 回覆:5 積分:1 註冊:2002-06-16 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
hi...以下是我的方法..試試看...如有錯誤請指正...
Procedure TMainForm.N2Click(Sender: TObject);
Var i: integer;
Begin
i := 0;
If MDIChildCount <> 0 Then
Begin
For i := 0 To MDIChildCount - 1 Do
If MDIChildren[i].Name = 'MDIChild' Then//<--'MDICHILD'就是你產生的子表單的名稱
Begin
BringWindowToTop(MDIChildren[i].Handle);
exit;
End;
End
Else
CreateMDIChild(IntToStr(MDIChildCount + 1));
i := 0;
End;
引言: 在button_click下了 child:=Tfrm_cadd.Create(frm_main); 指令 如何可以在按第二次不再產生第二個child Form 有找到FindWindowEx這樣的API,但總是error,請多多請教? |
mouse3766
一般會員 發表:4 回覆:5 積分:1 註冊:2002-06-16 發送簡訊給我 |
多謝chih兄的寶貴經驗,程式大致已經很完整,因為我是運用在多個child Form
所以要多一個檢查如下 Procedure TMainForm.N2Click(Sender: TObject);
Var
i: integer;
NotFound:Boolean; //MDIChildCount<>0時檢查是否找到該Child Form
Begin
i := 0;
NotFound:=True;
If MDIChildCount <> 0 Then
Begin
For i := 0 To MDIChildCount - 1 Do
If MDIChildren[i].Name = 'MDIChild' Then//<--'MDICHILD'就是你產生的子表單的名稱
Begin
BringWindowToTop(MDIChildren[i].Handle);
NotFound:=Fasle;
exit;
End;
if NotFount=True then CreateMDIChild(IntToStr(MDIChildCount 1));
End
Else
CreateMDIChild(IntToStr(MDIChildCount 1));
i := 0;
End;
|
DennisLi
一般會員 發表:10 回覆:19 積分:5 註冊:2002-06-01 發送簡訊給我 |
|
mouse3766
一般會員 發表:4 回覆:5 積分:1 註冊:2002-06-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |