TXLSXChartLayout saugo laukus išsaugojantį rankinį schemų, diagramos ar ašių pavadinimų ir legendų išdėstymą
Deklaravimas
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;
Koordinatinis modelis
X, Y, Width ir Height normalizuojami diagramos stačiakampio atžvilgiu. Kraštiniai X ir Y — kairės ir viršutinės koordinatės, kraštinis plotis ir aukštis — dešinės ir apatinės koordinatės, daiksnio X ir Y perstuma automatinę poziciją, o daiksnio plotis ir aukštis — diagramai santykiniai dydžiai
Modelis kiekvieną lauką ir režimą išlaiko atskirai. Įkeltos praleistos reikšmės lieka praleistos, o negaliojantys skaitiniai įrašai išgyvena nepakeistą išsaugojimą — atvaizdavimas tuomet grįžta prie automatinės geometrijos
Pavadinimų išdėstymuose gali būti tik X ir Y, o automatiškai išmatuotas dydis išlaikomas. Schemų ir legendų išdėstymams reikia visų keturių koordinačių
SetPositionAndSize vienu kvietimu priskiria visas keturias reikšmes, pažymi jų režimus kaip esamus ir įjungia išdėstymą. Atskiros koordinačių nustatymo metodai taip pat įjungia išdėstymą
Režimai ir target
| xlsxChartLayoutEdge | Pozicija nuo diagramos krašto; pagal numatymą naudojama X ir Y |
| xlsxChartLayoutFactor | Dydžio arba poslinkio daiksnis; pagal numatymą naudojamas pločiui ir aukščiui |
| Target | Vidinis arba išorinis schemos stačiakampis; prasminga tik PlotAreaLayout |
Sprendimas ir konvertavimas
TXLSXChartLayoutResolver puslapių skaidymo, SVG, PDF, vaizdo, peržiūros, spausdinimo, žiūryklės ir HTML išvestims vieną kartą išsprendžia pavadinimo, legendos, vidinės ir išorinės schemos srities bei ašies pavadinimo stačiakampius. Negaliojanti arba nepilna geometrija palieka automatinį stačiakampį, o galiojantis už ribų išėjęs stačiakampis nekeisdamas dydžio perstumiamas į artimiausią vietą diagramoje
ODF konvertavimas išspręstą geometriją susieja su absoliučiais diagramos atstumais. Pavadinimas ir legenda naudoja svg:x ir svg:y, o schemos sritis dar ir svg:width su svg:height. Rankinė ODF legenda praleidžia chart:legend-position, nes tas atributas perrašo absoliučias koordinates
Pavyzdys
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);
Taip pat žiūrėkite