property Align: TAlign; // published, inherited from TControl
TPdfView는 TScrollingWinControl에서 파생되므로 표준 VCL/LCL layout system에 참여합니다. Align은 parent에게 viewer를 한쪽 이상 edge에 어떻게 dock할지 알려 주며, PDF reader를 전체 form, splitter 안의 panel, tab sheet 영역에 채우는 가장 흔한 방법입니다
PDF viewer에 가장 유용한 값은 alClient입니다. 이 값은 toolbar, status bar, side panel이 배치된 뒤 parent의 남은 모든 pixel을 viewer가 차지하게 합니다. FitMode와 함께 쓰면 사용자가 form 크기를 바꿀 때마다 page artwork가 자동으로 다시 조정되어 document가 항상 가능한 가장 큰 영역을 사용합니다
Align이 적용되면 inherited resize logic이 client area를 다시 계산하고 viewer의 내부 scroll range가 새 크기에 맞게 다시 만들어집니다. 그 결과 vertical scroll bar와 현재 page position이 올바르게 유지됩니다. OnResize event는 alignment 적용 후에 발생합니다
TAlign enum(alNone, alTop, alBottom, alLeft, alRight, alClient, alCustom)을 제공하므로 두 framework에서 동일하게 동작합니다alLeft 또는 alBottom으로 dock하고, 나머지는 PdfView1.Align := alClient가 채우도록 하십시오 — 이렇게 하면 모든 VCL container type에서 z-order semantics가 유지됩니다Anchors를 사용할 때는 Align을 alNone으로 두십시오. 두 system은 같은 control에서 서로 배타적입니다
// Build a viewer that fills the form except for a toolbar on top
procedure TForm1.FormCreate(Sender: TObject);
begin
ToolBar1.Align := alTop;
StatusBar1.Align := alBottom;
PdfView1.Parent := Self;
PdfView1.Align := alClient;
PdfView1.FitMode := pfmFitToWidth;
PdfView1.Pdf := Pdf1;
Pdf1.LoadFromFile('sample.pdf');
PdfView1.Active := True;
end;