TXLSXChartLayout guarda uma disposição 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. Nos modos Edge, X e Y são coordenadas esquerda/topo, e a largura e a altura de edge são coordenadas direita/fundo; nos modos factor, X e Y deslocam a posição automática, e a largura e a altura de factor são tamanhos relativos ao gráfico
O modelo mantém cada campo e modo de forma independente. As omissões presentes no ficheiro carregado continuam omitidas, e tokens numéricos inválidos sobrevivem a uma gravação sem alterações, enquanto a renderização recai na geometria automática
As disposições de título podem conter apenas X e Y e mantêm o tamanho medido automaticamente. As disposições de área de plotagem e de legenda exigem as quatro coordenadas
SetPositionAndSize atribui os quatro valores, marca os respetivos modos como presentes e ativa a disposição numa única chamada. Os setters individuais de coordenadas também ativam a disposição
Modos e destino
| xlsxChartLayoutEdge | Posição a partir do limite do gráfico, usada por predefinição para X e Y |
| xlsxChartLayoutFactor | Fator de tamanho ou deslocamento, usado por predefinição para largura e altura |
| Target | Retângulo de plotagem interno ou externo, com significado apenas para PlotAreaLayout |
Resolução e conversão
TXLSXChartLayoutResolver resolve os retângulos de título, legenda, área de plotagem interna e externa e títulos de eixo uma única vez para paginação, saída SVG, PDF, imagem, pré-visualização, impressão, viewer e HTML. A geometria inválida ou incompleta mantém o retângulo automático, enquanto um retângulo válido fora dos limites passa 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 sobrepõe-se às 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);
Ver também