多視窗應用核心技術:表單建立、模態/非模態顯示與啟動時機控制
1.5.1.1 建立含 About 箱的範例程式
- 新專案 → 主表單放置 Button
- File → New → Forms 頁 → Form 樣板 → 產生
Form2
- 設計 About 箱:加入 Label 顯示資訊、Image 輔助說明
Form2.BorderStyle := bsDialog → 固定大小對話框外觀
顯示控制程式碼
// Unit1 介面區 uses 子句加入 Unit2
uses Unit2;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show; // 非模態顯示
end;
若設計時表單重疊:Shift+F12 → View Form 對話框選擇 Form1。
模態 About 箱改良
- About 箱加入 Button,
ModalResult := mrOK、Caption := 'OK'
- 主表單程式碼改為:
Form2.ShowModal;
Show vs ShowModal 關鍵差異
| 方法 | 行為 | 回呼時機 | 適用場景 |
| Show | 非模態,立即返回 | 不等待視窗關閉 | 工具視窗、浮動面板、並行操作 |
| ShowModal | 模態,阻塞呼叫端 | 視窗關閉後返回 ModalResult | 對話框、關鍵確認、必須完成的輸入 |
1.5.1.2 指定自動建立視窗
- 預設:專案所有視窗啟動時自動建立(隱藏但佔資源)
- 大型專案需控制建立時機
- Project → Options → Forms 頁:
- Main Form:輸入主視窗名稱,啟動時自動開啟獲取焦點
- Auto-created Forms:啟動時自動建立清單(預設全選)
- 不需自動建立 → 移至 Available Forms 清單
手動建立視窗程式碼模式
var EditForm: TEditForm;
begin
EditForm := TEditForm.Create(Self); // 明確建立實例
EditForm.Open(OpenFileDialog.FileName);
EditForm.Visible := True; // 顯示視窗
end;
非自動建立視窗必須呼叫 Create 建立實例並設定 Visible := True。
- 上一篇文章: Delphi 專案管理器完整操作指南:專案檔案結構、單元/視窗管理與原始碼導航
- 下一篇文章: Delphi 列印/尋找取代對話框與專案管理工具:PrintDialog、FindDialog、ReplaceDialog 實戰應用
Copyright ©
程式碼之家 All Rights Reserved