全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:937
推到 Plurk!
推到 Facebook!

請教有關MDI要關閉Child視窗的問題

答題得分者是:Chance36
venuslee
一般會員


發表:7
回覆:8
積分:3
註冊:2004-05-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-01 01:55:01 IP:218.169.xxx.xxx 未訂閱
我已參考了討論區的相關文章,但我仍出現error...,所以想請問各位高手我的問題該怎麼解決    有一個Main(Form1)視窗,可開啟多個Child(Form2)的視窗,而Main視窗有設定關閉的功能列,假設我開啟二個Child,用功能列的"Close"關掉第一個時可以正常關閉,但關第二個時便出現Error! (若按X則可以正常關閉)    procedure TForm1.New1Click(Sender: TObject); begin   if Form2 = nil then begin     Form2 := TForm2.Create(Self);   end;   Form2.Show; end;    procedure TForm1.Close1Click(Sender: TObject); begin   Close; end;    procedure TForm2.Close1Click(Sender: TObject); begin   Form2.Close; end;    procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin   Action := caFree;   Form2 := nil; end;    不曉得還有什麼沒有設定到的嗎?? 圖檔是出現的Error
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-01 02:40:19 IP:203.204.xxx.xxx 未訂閱
venuslee你好    
procedure TForm1.New1Click(Sender: TObject);
begin
  if Form2 = nil then begin
    Form2 := TForm2.Create(Self);
  end;
  Form2.Show;
  // 這種寫法好像不能建立第二個子Form吧
end;    procedure TForm2.Close1Click(Sender: TObject);
begin
  Close;  //在TForm2的事件中不要加Form2(ChildForm的Name不見得叫Form2),真要的話請加Self.Close; 
end;    procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  // Form2 := nil; // 這行不需求, 錯誤訊息就是指這行的Form2已被第一個子Form釋放了
end;
TATSU
版主


發表:50
回覆:135
積分:62
註冊:2003-01-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-01 02:43:10 IP:219.76.xxx.xxx 未訂閱
venuslee
一般會員


發表:7
回覆:8
積分:3
註冊:2004-05-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-01 10:29:59 IP:218.169.xxx.xxx 未訂閱
謝謝兩位的幫忙! 我終於解決了的的問題了~  真是感激不盡!!
系統時間:2024-05-05 5:42:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!