HotXLS-Doku

TXLSXChartLayout-Klasse

TXLSXChartLayout speichert ein felderhaltendes manuelles Layout für Zeichenflächen, Diagramm- oder Achsentitel sowie Legenden

Deklaration

type
  TXLSXChartLayoutTarget = (xlsxChartLayoutOuter, xlsxChartLayoutInner);
  TXLSXChartLayoutMode = (xlsxChartLayoutFactor, xlsxChartLayoutEdge);

  TXLSXChartLayout = class
    property Enabled: Boolean;
    property HasTarget: Boolean;
    property HasXMode, HasYMode, HasWidthMode, HasHeightMode: Boolean;
    property HasX, HasY, HasWidth, HasHeight: Boolean;
    property Target: TXLSXChartLayoutTarget;
    property XMode, YMode, WidthMode, HeightMode: TXLSXChartLayoutMode;
    property X, Y, Width, Height: Double;
    procedure ClearTarget;
    procedure ClearXMode;
    procedure ClearYMode;
    procedure ClearWidthMode;
    procedure ClearHeightMode;
    procedure ClearX;
    procedure ClearY;
    procedure ClearWidth;
    procedure ClearHeight;
    procedure SetPositionAndSize(AX, AY, AWidth, AHeight: Double);
    procedure Assign(Source: TXLSXChartLayout);
    procedure Clear;
  end;

Koordinatenmodell

X, Y, Width und Height werden auf das Diagrammrechteck normiert. Edge-X und -Y sind linke und obere Koordinaten, Edge-Breite und -Höhe sind rechte und untere Koordinaten, Faktor-X und -Y verschieben die automatische Position, und Faktor-Breite und -Höhe sind diagrammrelative Größen
Das Modell behält jedes Feld und jeden Modus unabhängig bei. Beim Laden ausgesparte Elemente bleiben ausgespart, und ungültige numerische Tokens überleben einen unveränderten Save, während das Rendering auf automatische Geometrie zurückfällt
Titel-Layouts dürfen nur X und Y enthalten und behalten die automatisch gemessene Größe. Zeichenflächen- und Legenden-Layouts benötigen alle vier Koordinaten
SetPositionAndSize weist alle vier Werte zu, markiert ihre Modi als vorhanden und aktiviert das Layout in einem Aufruf. Auch die einzelnen Koordinaten-Setter aktivieren das Layout

Modi und Ziel

xlsxChartLayoutEdgePosition relativ zur Diagrammkante, standardmäßig für X und Y verwendet
xlsxChartLayoutFactorGrößen- oder Offset-Faktor, standardmäßig für Breite und Höhe verwendet
TargetInneres oder äußeres Plotrechteck, nur für PlotAreaLayout von Bedeutung

Auflösung und Konvertierung

TXLSXChartLayoutResolver löst die Rechtecke für Titel, Legende, innere und äußere Zeichenfläche sowie Achsentitel je einmal auf — für Paginierung, SVG, PDF, Bild-, Vorschau-, Druck-, Viewer- und HTML-Ausgabe. Ungültige oder unvollständige Geometrie behält das automatische Rechteck, während ein gültiges Rechteck außerhalb des Diagramms ohne Größenänderung auf die nächstgelegene Position innerhalb des Diagramms rückt
Die ODF-Konvertierung bildet die aufgelöste Geometrie auf absolute Diagrammdistanzen ab. Titel und Legende verwenden svg:x und svg:y, die Zeichenfläche zusätzlich svg:width und svg:height. Eine manuelle ODF-Legende lässt chart:legend-position weg, weil dieses Attribut absolute Koordinaten überschreiben würde

Beispiel

Chart.PlotAreaLayout.Target := xlsxChartLayoutInner;
Chart.PlotAreaLayout.SetPositionAndSize(0.12, 0.18, 0.72, 0.64);
Chart.TitleLayout.SetPositionAndSize(0.1, 0.02, 0.6, 0.12);
Chart.LegendLayout.SetPositionAndSize(0.2, 0.84, 0.6, 0.1);

Siehe auch