調用DLL作為MDICHILD窗體時如何只能建立一次窗體 |
尚未結案
|
dengguo
一般會員 發表:41 回覆:49 積分:23 註冊:2004-01-09 發送簡訊給我 |
問題如下,請幫忙看看,謝謝!!
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=52394 ###############################
初學delphi,請各位多多提點!謝謝!
###############################
|
danny
版主 發表:100 回覆:522 積分:595 註冊:2002-03-11 發送簡訊給我 |
引言: 問題如下,請幫忙看看,謝謝!! http://delphi.ktop.com.tw/topic.php?TOPIC_ID=52394你的 "窗體" 指的是 Form 嗎 ? 以下是我寫的一個 function 可以指定某一 FormClass 可開啟的 Form 上限, 當然設 1 只能開一個 Form. 不知道是不是你要的 ... procedure OpenForm(FormClass: TFormClass; var fm; AOwner: TComponent; fmCopy :Integer); var i, j: integer; booOpenForm: Boolean; Child: TForm; begin booOpenForm := True; j := 1 ; // 若Form已Create, 則呼叫到最上層, 若未Create則Create New Form for i := 0 to Screen.FormCount -1 do begin if Screen.Forms[i].ClassType = FormClass then begin Child := Screen.Forms[i]; if fmCopy <= 1 then begin if Child.WindowState = wsMinimized then ShowWindow(Child.handle, SW_SHOWNORMAL) else ShowWindow(Child.handle, SW_SHOWNA); if (not Child.Visible) then Child.Visible := True; Child.BringToFront; Child.Setfocus; TForm(fm) := Child; Exit; end else begin ShowWindow(Child.handle, SW_SHOWMINIMIZED); Inc(j); if j > fmCopy then begin ShowWindow(Child.handle, SW_SHOWNORMAL); booOpenForm := False; ShowMessage('超出系統限制, 無法開啟'); end; end; end; end; if booOpenForm then begin Child := TForm(FormClass.NewInstance); TForm(fm) := Child; Child.Create(AOwner); Child.FormStyle := fsMDIChild; Child.AutoScroll := False; Child.AutoSize := False; Child.Visible := True; Child.Caption := Child.Caption ' - ' IntToStr(j); end; end;
------
將問題盡快結案也是一種禮貌! |
dengguo
一般會員 發表:41 回覆:49 積分:23 註冊:2004-01-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |