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

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

作者:  來源:  發(fā)布時(shí)間:2012-1-8 17:57:33  點(diǎn)擊:
到目前為止,我們自己隨意建立一個(gè)屬于自己的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)生一個(gè)OnClick處理事件;

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

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

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

0094

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

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

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

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

0095

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

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

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

Caution

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

還有一個(gè)問題,就是在MDI窗體上點(diǎn)擊關(guān)閉按鈕時(shí),發(fā)現(xiàn)子窗口并沒有關(guān)閉,而是最小化,因此我們要修改它,使得點(diǎ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)存,這時(shí)點(diǎn)擊MDI子窗體關(guān)閉按鈕就可以正常關(guān)閉了。

4、再次運(yùn)行此程序,證明此程序的表現(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