當(dāng)前位置:首頁文章首頁 IT學(xué)院 Delphi

一個簡單的MDI示范程序(Delphi)

作者:  來源:  發(fā)布時間:2012-1-8 17:57:33  點擊:
到目前為止,我們自己隨意建立一個屬于自己的About框,我的About對話框效果如下:

image

1、將建立好的About窗體的Name屬性設(shè)置為AboutBox,BorderStyle屬性設(shè)置為bsDialog

image

image

2、以PVAboutU保存此About對話框窗體單元;

3、切換到Code Editor中的PctViewU標(biāo)簽,從Delphi主菜單選擇【File | Use Unit】將PVAboutU單元包含近來;

4、按F12切換到MainForm主窗體,從菜單上選擇【Help | About】,這樣就產(chǎn)生一個OnClick處理事件;

5、為此事件添加代碼如下:

procedure TMainForm.About1Click(Sender: TObject); begin   AboutBox.ShowModal; end;

現(xiàn)在運行它,點擊Run按鈕,試一試Help菜單的About選項,運行效果如下:

0094

六、進(jìn)一步完善程序

此時這個程序已經(jīng)可以運行了,但它不等于就沒有值得完善的地方。

對于這個程序還有兩個問題需要值得注意,它們?nèi)菀谆煜,首先,?dāng)啟動該程序時,會顯示一個空白MDI子窗口,這是因為Delphi應(yīng)用程序會自動建立所有窗體。我們可以從自動產(chǎn)生的清單中刪除MDI子窗體。

1、從Delphi主菜單中選擇【Project | Options…】,將顯示Project Option對話框;

0095

2、點擊Forms標(biāo)簽,其中“Auto-create forms”中顯示的就是所有會自動創(chuàng)建產(chǎn)生的窗體清單;

3、點擊其中不想要自動創(chuàng)建的窗體Child,選擇 >按鈕,就會從自動創(chuàng)建列表中刪除該子窗口,并把它放置到“Available forms”列表中。

再次運行此程序,這一次將不顯示空白MDI子窗體。

Caution

如果要從自動產(chǎn)生清單中刪除一個窗體,就必須保證在用它之前要建立一個專門的窗體,如果不建立一個窗體,指向窗體的指針就不能初始化,這就意味著還沒有為此指針賦一個有意義的值(記住指針是由Delphi自動產(chǎn)生)。試圖用這個指針,其結(jié)果將會產(chǎn)生一個非法錯誤,當(dāng)從自動產(chǎn)生清單中刪除一個窗體后,就必須負(fù)責(zé)在用它之前建立它。

還有一個問題,就是在MDI窗體上點擊關(guān)閉按鈕時,發(fā)現(xiàn)子窗口并沒有關(guān)閉,而是最小化,因此我們要修改它,使得點擊關(guān)閉后真正被關(guān)閉。

1、在Form Designer中選擇Child子窗體,選中窗體本身,確認(rèn)在Object Inspector的Component Selector中選擇的是Child。

2、雙擊Events頁的OnClose事件,添加代碼如下:

procedure TChild.FormClose(Sender: TObject; var Action: TCloseAction); begin   Action := caFree; end;

把關(guān)閉動作設(shè)置為caFree,指示VCL關(guān)閉子窗體,并釋放與窗體有關(guān)的內(nèi)存,這時點擊MDI子窗體關(guān)閉按鈕就可以正常關(guān)閉了。

4、再次運行此程序,證明此程序的表現(xiàn)與前面所述的一樣。

Tags:

MDI示范程序
首頁 上一頁 [1] [2] [3]  下一頁 尾頁
上一篇:Delphi使用ABC 下一篇:

相關(guān)軟件

相關(guān)文章

文章評論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z