Documentación de HotXLS

Clase TXLSXChartLayout

TXLSXChartLayout almacena un diseño manual que preserva los campos para áreas de trazado, títulos del gráfico o de ejes, y leyendas

Declaración

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;

Modelo de coordenadas

X, Y, Width y Height se normalizan respecto al rectángulo del gráfico. En modo Edge, X e Y son las coordenadas izquierda y superior, el ancho y alto de borde son las coordenadas derecha e inferior, la X e Y de factor desplazan la posición automática, y el ancho y alto de factor son tamaños relativos al gráfico
El modelo retiene cada campo y modo de forma independiente. Las omisiones cargadas permanecen omitidas y los tokens numéricos no válidos sobreviven a un guardado sin cambios, mientras que el renderizado recurre a la geometría automática
Los diseños de título pueden contener solo X e Y y conservar el tamaño medido automáticamente; los diseños de área de trazado y de leyenda requieren las cuatro coordenadas
SetPositionAndSize asigna los cuatro valores, marca sus modos como presentes y habilita el diseño en una sola llamada. Los definidores individuales de coordenadas también habilitan el diseño

Modos y destino

xlsxChartLayoutEdgePosición desde el borde del gráfico, usada de forma predeterminada para X e Y
xlsxChartLayoutFactorFactor de tamaño o desfase, usado de forma predeterminada para el ancho y el alto
TargetRectángulo de trazado interno o externo, con significado solo para PlotAreaLayout

Resolución y conversión

TXLSXChartLayoutResolver resuelve una sola vez los rectángulos de título, leyenda, área de trazado interna y externa, y títulos de ejes para la paginación y las salidas SVG, PDF, imagen, vista previa, impresión, visor y HTML. La geometría no válida o incompleta conserva el rectángulo automático, mientras que un rectángulo válido fuera de los límites se mueve a la posición más cercana dentro del gráfico sin cambiar de tamaño
La conversión ODF mapea la geometría resuelta a distancias absolutas del gráfico. El título y la leyenda usan svg:x y svg:y, mientras que el área de trazado también usa svg:width y svg:height. Una leyenda ODF manual omite chart:legend-position porque ese atributo anula las coordenadas absolutas

Ejemplo

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);

Ver también