程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 使用Delphi的工程管理、設計工具

使用Delphi的工程管理、設計工具

編輯:Delphi

Delphi 2.0是完備的工程設計系統,除提供了大量的可視化編程部件和簡單方便的設計方法外,還備有功能強大的工程管理、窗口設計工具。

1.5.1 創建多窗體工程項目

絕大多數的應用程序都用到不只一個窗口,Delphi允許用戶創建多文檔界面(MDI)應用程序。應用自動創建窗體、窗體樣板、對話框專家、應用專家等,可以使得創建應用程序更為方便快捷,而且可重復利用,大大地降低了工作量。

1.5.1.1 創建一個含有About框的例程

作為例子,我們先創建一個含主窗體和簡單的About框的應用程序:

Delphi中創建一個新工程,並為空窗口增加一個Button部件。我們把它作為主窗體,目的是當按動按鈕部件時,調出About窗口。下面我們直接進行About窗口的創制。

選用主菜單的File|New項,在New頁中,選用Form樣板,Delphi會自動創建一個空窗體Form2。您可以在其上進行About框的設計,例如加入標簽以顯示各種信息、加入圖片幫助說明等。將Form2BorderStyle屬性設置為bsDialog,則窗口成為運行時不能改變大小的對話框。

下面編程實現主窗體對About框的顯示控制。很可能在設計時,兩個窗體出現重疊,Form1About遮住。用Shift+F12產生VIEw Form對話框,可以選擇窗口的名字,調出所需的窗體Form1,雙擊其上的按鈕部件,在事件處理過程加入以下的程序:

procedure TForm1.Button1Click(Sender: TObject);

begin

Form2.Show;

end;

由於Form1窗體調用About窗體,所以必須在Form1的庫單元程序中對引用About進行說明。在Unit1Uses後面加入About的庫單元名Unit2。運行程序,在主窗體上按動按鈕,可以出現About框。在框外單擊鼠標,會回到主窗體中。

About窗體中加入一個按鈕,並將按鈕的ModalResult屬性設置為mrOK,同時將按鈕的標簽的Caption改為OK。這樣一個有模式的About框已經建成了。將窗體Form1Button1OnClick處理過程的代碼改變如下:

Form2.ShowModal;

再運行程序,除了與上述功能相同顯示About對話框外,該程序只有當用戶按動About框的按鈕或被About窗控制圖標關閉窗口後,才會回到主窗體中,而不能與第一個窗體發生交互行為。這就是方法ShowShowModal的主要不同之處。

1.5.1.2 指定自動創建窗體

上面我們簡單地生成了一個含About框的雙窗體應用程序,運行時,應用程序啟動時將自動創建第二個窗體。窗體保持隱蔽狀態,但仍然占用Windows的資源。在大型應用程序中,有時不希望在應用程序加載時自動創建所有窗體。Delphi可以指定哪些窗體被自動創建。

選用Project|OptionsDelphi顯示Project options對話框。如果Forms不是當前頁,按動下標簽使之可見。如圖1.12所示:

圖示為Delphi裝載的TextEdit例程(...\Delphi 2.0\Demos\doc\TextEdit.dpr)。在MainForm

正文框中輸入主窗體的名字。當應用程序啟動時,主窗體自動打開並獲取輸入焦點。對

1.jpg

1.12 Project Options對話框

MDI應用,主窗體的FormStyle屬性必須設置為fsMDIForm。在Auto-created Forms列表框中列出了在啟動時自動創建的窗體,缺省時工程文件的所有窗體都在此列中。

如果不需要自動創建窗體,使用箭頭按鈕把窗體移動到Available Forms列表框中。自動創建的窗體可以用Show方法進行顯示,而不自動創建時,必須編程實現窗體的顯示。在TextEdit工程中,定義一個TEditForm類型的變量EditForm,使用了以下的代碼顯示第二個窗體:

Begin

EditForm := TeditForm.Create(Self);

EditForm.Open(OpenFileDialog.Filename);

EditForm.Visible := True;

End;

也即,必須使用Create方法創建窗體,同時將窗體的Visible屬性設為真。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved