property Constraints: TSizeConstraints; // published, inherited from TControl
Constraints legt die vier Untereigenschaften MinWidth, MaxWidth, MinHeight und MaxHeight offen (Standard je 0 = unbegrenzt). Sie begrenzen die Resize-Logik, die von Align, Anchors oder expliziten SetBounds-Aufrufen angetrieben wird, und verhindern, dass der Viewer unter ein brauchbares Minimum schrumpft oder über ein sinnvolles Maximum wächst
Für PDF-Reader-Anwendungen zählen vor allem die Mindestmaße: Unter etwa 240 x 180 wird das Rendering unangenehm, und die Scrollbars beginnen, mit der Seite selbst um Platz zu kämpfen. MinWidth := 320 und MinHeight := 240 setzen vermeidet diesen visuellen Zusammenbruch und erlaubt trotzdem ein schmales Andocken des Viewers
Greift eine Beschränkung, berechnet der aktive FitMode den Seitenzoom gegen die geklemmte Client-Größe neu. Das garantiert, dass Einpassen-auf-Breite und Einpassen-auf-Seite nie null oder negative Pixelgrößen erzeugen, die PDFium sonst zum Überspringen des Renderings verleiten würden
Constraints zusätzlich mit den themed Mindestgrößen des Widget-Sets, aber die eigene Logik des PDFium-Controls nutzt nur die hier deklarierten WerteMaxWidth := 800 haben und trotzdem MinWidth := 0 behaltenOnResize und ein erneutes Einpassen auslösen, wenn die aktuelle Größe den neuen Bereich verletzt
// 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;