線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1418
推到 Plurk!
推到 Facebook!

有關form的問題

 
tailen
中階會員


發表:82
回覆:109
積分:63
註冊:2002-04-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-05-30 14:38:36 IP:61.218.xxx.xxx 未訂閱
各位先進好: 有一問題請教,若是在MDI form中,有某一個MDI child form(formA)最小化,那如果我再去點選MDI form item(呼叫formA),會重新另外開一個formA,若是我希望能將原本的FormA回復為一般化,要如何做呢?(也就是說如何判別我欲開啟的form已經存在了呢?)謝謝各位先進指教!
阿子
站務副站長


發表:120
回覆:230
積分:201
註冊:2002-03-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-05-30 16:36:02 IP:61.221.xxx.xxx 未訂閱
這個問題常看人在問,方法很多,我提供一個
{* ******************************** CreateChildForm ************************* *}
{* =================================Blue Fox================================= *}
{* 目    的:  呼叫ChildForm並防止重複產生 
{* 關 鍵 字:  MDI;Form
{* 輸 入 值:  const FormName: string
{* 傳 回 值:  CreateChildForm:TCustomForm
{* 呼 叫 式:
{* 說    明:
{* 日    期      由      注解
{* ----------    ----    -------
{* 2001/6/14     levi    建立
{* =================================Blue Fox==============================2.0 *}
procedure CreateChildForm(FormName: string); 
var
  ICont: Integer;
  Form: TForm;
begin
  Form := nil;
  for ICont := 0 to Screen.FormCount - 1 do
    if Screen.Forms[ICont].ClassName = FormName then
    begin
      Form := Screen.Forms[ICont];
      Form.BringToFront;
    end;
  if Form = nil then
  begin
    Form := TFormClass(FindClass(FormName)).Create(Application);
  end;
  Form.WindowState := wsMaximized;
end;
從思考取勝一切~q
------
從思考取勝一切~q
sun_chih_yen
一般會員


發表:40
回覆:33
積分:13
註冊:2003-10-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-03 19:01:32 IP:211.74.xxx.xxx 未訂閱
begin Form := nil; for ICont := 0 to Screen.FormCount - 1 do if Screen.Forms[ICont].ClassName = FormName then begin Form := Screen.Forms[ICont]; Form.BringToFront; 以上這幾段是在說什麼為什麼我都看不懂~~~ 我現在也面臨相同的問題可是研究好久還是無解 還有要怎樣呼叫這個程序~~~謝謝感激不盡~~~
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-03 19:41:01 IP:63.84.xxx.xxx 未訂閱
您好!    提供一個小弟經常用到的方法, Form元件的Create有兩種方法, AutoCreate(在專案執行時即自動建立), Available(非自動建立, 需程式碼控制建立), 就此兩種方法, 判斷其是否已開啟的程式碼如下: 1. AutoCreate
begin
  if Form1.Showing then
  //也可寫成if Form1.Visible = True then
    Form1.BringToFront
  else
    Form1.Show;
end;
2. Available
begin
  if Form1 <> nil then
    Form1.BringToFront
  else
    Form1 := TForm1.Create(Application);
    Form1.Show;
end;
參考看看! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
系統時間:2024-11-23 23:19:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!