請教有關MDI要關閉Child視窗的問題 |
答題得分者是:Chance36
|
venuslee
一般會員 發表:7 回覆:8 積分:3 註冊:2004-05-01 發送簡訊給我 |
我已參考了討論區的相關文章,但我仍出現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 發送簡訊給我 |
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 發送簡訊給我 |
|
venuslee
一般會員 發表:7 回覆:8 積分:3 註冊:2004-05-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |