一個簡單的MDI示范程序(Delphi)
最為一個鞏固之前有關窗體和對象的有關知識,下面就建立一個簡單的MDI示范程序,這個程序的功能是打開和保存圖形文件(包括位圖、圖標等),為了完成這個任務,我們有一個大概的計劃,計劃內容如下:
(1)建立主窗體(一個MDI父窗體),包括菜單。
(2)為【File | Open…】 和【File | Save…】菜單選項編寫代碼。
(3)為Windows菜單上的Cascade、Tile和Arrange All選項編寫代碼。
(4)建立MDI子窗體。
(5)建立一個About對話框。
(6)然后再回憶和欣賞一下這段工作。
時間就是金錢,即刻就做吧 。
一、創(chuàng)建主窗口窗體
首先創(chuàng)建一個主窗口窗體,一個MDI應用程序的主窗口的FormStyle屬性必須設置為fsMDIForm。不但要為應用程序增加File Open和 File Save 對話框,還要增加一個菜單。
1、啟動Delphi,并從主菜單選擇【File | New | Application】;
2、把主窗體的Name屬性設置為MainForm;
3、把Caption屬性設置為Picture Viewer;
4、把FormStyle屬性設置為fsMDIForm;
好了,下面為此窗體增加一個菜單,利用Delphi特性,引進一個預定義菜單,具體如下:
1、點擊組件選項板的Standard標簽,并點擊MainMenu按鈕;
2、把MainMenu組件點擊放置到窗體上,具體放到哪個地方無所謂了,因為在運行階段,代表菜單的圖標只是占地方而不顯示,這是非可視化組件。
3、把MainMenu組件Name屬性改為MainMenu;
4、雙擊MainMenu組件,就會出現Menu Designer對話框;
5、在MainMenu上點擊鼠標右鍵,選擇“Insert From Template…”,將出現Insert Template對話框;
6、選擇“MDI Frame Menu”并點擊OK,此菜單將顯示在Menu Designer上,關閉Menu Designer窗口。
現在又回到了主窗體,注意現在窗體上多了一條菜單,此時先不要點擊任何子菜單項,我們先準備File Open對話框和File Save對話框:
1、點擊組件選項板的Dialogs標簽,選擇Open Picture Dialog組件,并把它放到窗體上,這也是一個非可視組件。
2、把Open對話框的Name屬性改為OpenPictureDialog;
3、把Open對話框的Title屬性改為“Open a Picture for Viewing”;
4、在窗體再增加一個Save Picture Dialog組件;
5、把此組件的Name屬性改為“SavePictureDialog”,把Title屬性改為“Save a Picture”;
此時窗體看起來應該像下圖:
二、編寫【File | Open…】和【File | Save As…】菜單選項代碼
下面就準備開始編寫代碼,Delphi提供了一種很好地編寫菜單處理程序的方法,從而使遇到的麻煩最小。還不要建立MDI子窗體,但要充分了解它,并用它來為菜單處理程序編寫代碼,記住在建立MDI子窗體之前一直不要編譯應用程序(因為還沒有建立MDI子窗體,編譯會出現錯誤的)
1、在主窗體上選擇【File | Open…】菜單項,這樣就會在Code Editor中為此菜單項建立一個事件處理程序。
2、為此事件處理程序鍵入下列代碼:
procedure TMainForm.Open1Click(Sender: TObject); var Child: TChild; begin if OpenPictureDialog.Execute then begin Child := TChild.Create(Self); with Child.Image.Picture do begin LoadFromFile(OpenPictureDialog.FileName); Child.ClientWidth := Width; Child.ClientHeight := Height; end; Child.Caption := ExtractFileName(OpenPictureDialog.FileName); Child.Show; end; end;