TXLSXChartLayout armazena um layout manual que preserva os campos para áreas de plotagem, títulos de gráfico ou de eixo e legendas
Declaração
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 e Height são normalizados em relação ao retângulo do gráfico No modo Edge, X e Y são as coordenadas esquerda e superior, e width e height de borda são as coordenadas direita e inferior; no modo Factor, X e Y deslocam a posição automática e width e height são tamanhos relativos ao gráfico
O modelo retém cada campo e modo de forma independente Omissões carregadas continuam omitidas e tokens numéricos inválidos sobrevivem a um salvamento sem alterações, enquanto a renderização faz Fallback para a geometria automática
Layouts de título podem conter apenas X e Y e mantêm o tamanho medido automaticamente Layouts de área de plotagem e de legenda exigem as quatro coordenadas
SetPositionAndSize atribui os quatro valores, marca seus modos como presentes e habilita o layout em uma única chamada Os setters individuais de coordenada também habilitam o layout
Modos e Target
| xlsxChartLayoutEdge | Posição a partir da borda do gráfico, usada por padrão para X e Y |
| xlsxChartLayoutFactor | Fator de tamanho ou deslocamento, usado por padrão para width e height |
| Target | Retângulo de plotagem interno ou externo; só tem significado para PlotAreaLayout |
Resolução e conversão
O TXLSXChartLayoutResolver resolve os retângulos de título, legenda, área de plotagem interna e externa e título de eixo uma única vez para paginação, saída em SVG, PDF, imagem, preview, impressão, viewer e HTML Geometria inválida ou incompleta mantém o retângulo automático, enquanto um retângulo válido fora dos limites vai para a posição mais próxima dentro do gráfico sem alterar o tamanho
A conversão ODF mapeia a geometria resolvida para distâncias absolutas do gráfico Título e legenda usam svg:x e svg:y, enquanto a área de plotagem também usa svg:width e svg:height Uma legenda ODF manual omite chart:legend-position porque esse atributo sobrescreve coordenadas absolutas
Exemplo
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);
Veja também