property Anchors: TAnchors; // published, default [akLeft, akTop]
Anchors 是 Align 的替代作法,能更精準地控制 PDF 檢視器如何跟隨父容器。集合中的每個元素(akLeft、akTop、akRight、akBottom)都會把檢視器對應邊緣鎖定到父容器同一邊;如果相對兩邊都錨定,父容器縮放時檢視器就會跟著拉伸;如果只錨定一邊,檢視器就會維持大小並平移
在固定寬度的檢視窗格或精靈步驟中,PDF 閱讀器最常見的配置是 [akLeft, akTop, akRight, akBottom],它在功能上等同於 alClient,但能保留設計階段的外框矩形,也方便你把其他控制項巢狀放在檢視器周圍而不會有疊放順序問題
只要錨點讓檢視器變大或變小,繼承而來的調整大小處理常式就會重新計算捲動區域;如果 FitMode 目前不是 pfmNone,也會重新套用,讓頁面內容和可視區保持一致
Anchors 和 Align 不能同時套用在同一個控制項上。只要把 Align 設成非 alNone 的值,執行階段就會覆寫錨點Constraints.MinWidth / MinHeight 維持可用的檢視區OnResize,所以從該事件啟動的自訂捲軸或縮放計算都會繼續執行
// 將檢視器鎖定在父面板的四個邊緣
procedure TForm1.ConfigureViewer;
begin
PdfView1.Parent := PanelMain;
PdfView1.Align := alNone;
PdfView1.SetBounds(8, 8, PanelMain.ClientWidth - 16,
PanelMain.ClientHeight - 16);
PdfView1.Anchors := [akLeft, akTop, akRight, akBottom];
PdfView1.Constraints.MinWidth := 320;
PdfView1.Constraints.MinHeight := 240;
end;