首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 多文件介面架構:MDI 與 MPI 完整比較與實作

     編輯:Delphi

MDI(多文件介面)

父視窗(FormStyle = fsMDIForm)包含多個子視窗(FormStyle = fsMDIChild)。子視窗在專案選項中設為「可用」而非「自動建立」,執行期動態 Create。菜單融合機制:子視窗菜單依 GroupIndex 插入/取代父視窗菜單。WindowMenu 屬性自動管理視窗清單切換。

MPI(多頁面介面)—— 現代首選

單一視窗內以分頁切換,速度更快、資源更省。分兩類:

類型特徵實作方式
靜態 MPI分頁數固定,設計時期建立TNotebook + TTabSet,TabSet.Tabs := Notebook.Pages,OnClick 同步 PageIndex
動態 MPI分頁隨文件開啟/關閉增減需自訂類別(TDynaPage),管理 CurPage、FileList,動態建立/銷毀 TMemo 於 TPage 上

動態 MPI 關鍵技術難點

  • TNotebook.Pages.Objects[] 回傳 TObject,實為 TPage(TCustomEdit 衍生),需用無型別指標 Pointer 中轉指派 Parent
  • 分頁切換時必須同步 TabSet.TabIndex、Notebook.PageIndex、CurPage、Memo1 指標
  • 關閉最後一分頁時保留至少一頁,菜單啟用狀態同步

代碼範例展示 Open1Click/Close1Click 如何協調 DynaPage、Notebook、TabSet 三者狀態一致性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved