property Constraints: TSizeConstraints; // published, inherited from TControl
Constraints espone le quattro sotto-proprietà MinWidth, MaxWidth, MinHeight e MaxHeight (tutte a 0 per predefinito = nessun limite). Limitano la logica di ridimensionamento guidata da Align, Anchors o chiamate esplicite a SetBounds, impedendo al viewer di collassare sotto una minima area utilizzabile o di crescere oltre un massimo ragionevole
Per le applicazioni lettorie conto soprattutto le dimensioni minime: sotto circa 240 x 180 il rendering diventa scomodo e le barre di scorrimento iniziano a contender spazio alla pagina stessa. Impostare MinWidth := 320 e MinHeight := 240 evita quel collasso visivo lasciando comunque all'utente la possibilità di restringere molto il viewer
Quando un vincolo entra in gioco, la FitMode attiva ricalcola lo zoom della pagina sulla dimensione client limitata. Questo garantisce che adatta-a-larghezza e adatta-a-pagina non producano mai dimensioni in pixel nulle o negative che altrimenti farebbero saltare il rendering di PDFium
Constraints interagisce inoltre con le dimensioni minime temizzate del widget set, ma la logica propria del controllo PDFium usa solo i valori dichiarati quiMaxWidth := 800 mantenendo MinWidth := 0OnResize e un ri-adattamento se la dimensione corrente viola il nuovo intervallo
// Keep the viewer usable in any layout configuration
procedure TForm1.FormCreate(Sender: TObject);
begin
PdfView1.Constraints.MinWidth := 320;
PdfView1.Constraints.MinHeight := 240;
PdfView1.Constraints.MaxWidth := 0; // no max
PdfView1.Constraints.MaxHeight := 0; // no max
PdfView1.Anchors := [akLeft, akTop, akRight, akBottom];
PdfView1.FitMode := pfmFitToWidth;
end;