使用 TNotebook + TTabSet 實現多文件編輯。關鍵在於指標傳遞:宣告 var Memo1: TMemo;(未實例化),每次分頁切換/新增/刪除時,將對應頁面的 TMemo 指標指派給 Memo1,菜單功能統一操作 Memo1,確保永遠針對當前頁面。
type TDynaPage = class(TObject)
public
CurPage: Integer; // 當前頁面索引
FileList: TStringList; // 檔案名稱與 Memo 物件對應
end;
核心方法:
DynaAdd:Notebook.Pages.Add → 取得 Pages.Objects[Index] 作為 Parent → 建立 TMemo → 同步 TabSet、PageIndex、CurPage、FileList.AddObjectDel:移除頁面、同步 TabSet、FileList、更新標題、指標重新指派DynaMemo:建立 TMemo、設定 Align=alClient、BorderStyle=bsNone、HideSelection=FalseTFontDialog 讓使用者選擇字體。Options 控制顯示:fdEffects(顏色/效果)、fdShowHelp、fdWysiwyg(僅顯示螢幕/列印通用字體)等。套用邏輯:
procedure TEditForm.SetFont(Sender: TObject);
begin
FontDialog1.Font := Memo1.Font;
if FontDialog1.Execute then
Memo1.Font := FontDialog1.Font;
SetEditRect;
end;