TXLSXChartLayout tallentaa kenttätietoisen manuaalisen asettelun piirtoalueille sekä kaavion tai akselien otsikoille ja legendoille
Ilmoitus
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;
Koordinaattimalli
X, Y, Width ja Height normalisoidaan kaavion suorakulmioon. Edge-tyyppinen X ja Y on vasemman yläkulman koordinaatti, edge-tyyppinen leveys ja korkeus oikean alakulman koordinaatti, factor-tyyppinen X ja Y siirtää automaattista sijaintia, ja factor-tyyppinen leveys ja korkeus on kaavioon suhteutettu koko
Malli säilyttää jokaisen kentän ja tilan toisistaan riippumatta. Ladattaessa puuttuneet arvot pysyvät poissaolevina, ja numeerisesti virheelliset arvot säilyvät muuttumattomina tallennuksessa, kun taas renderöinti käyttää fallbackina automaattista geometriaa
Otsikoiden asettelut voivat sisältää vain X- ja Y-arvon ja säilyttävät automaattisesti mitatun koon. Piirtoalueen ja legendan asettelut vaativat kaikki neljä koordinaattia
SetPositionAndSize asettaa kaikki neljä arvoa, merkitsee niiden tilat läsnäoleviksi ja ottaa asettelun käyttöön yhdellä kutsulla. Yksittäiset koordinaattien asettajat ottavat myös asettelun käyttöön
Tilat ja kohde
| xlsxChartLayoutEdge | Sijainti kaavion reunasta; oletuksena X- ja Y-suunnissa |
| xlsxChartLayoutFactor | Koon tai siirtymän kerroin; oletuksena leveydessä ja korkeudessa |
| Target | Sisäinen tai ulkoinen piirtosuorakulmio, merkityksellinen vain PlotAreaLayout-ominaisuudelle |
Ratkaisu ja muunnos
TXLSXChartLayoutResolver ratkaisee otsikon, legendan, sisäisen ja ulkoisen piirtoalueen sekä akseliotsikoiden suorakulmiot kerran paginointia sekä SVG-, PDF-, kuva-, esikatselu-, tulostus-, viewer- ja HTML-tuottoa varten. Virheellinen tai puutteellinen geometria säilyttää automaattisen suorakulmion, kun taas kelvollinen rajojen ulkopuolelle jäävä suorakulmio siirtyy lähimpään kaavion sisäiseen sijaintiin muuttamatta kokoaan
ODF-muunnos kuvaa ratkaistun geometrian absoluuttisiksi kaavion etäisyyksiksi. Otsikko ja legenda käyttävät svg:x- ja svg:y-attribuutteja, ja piirtoalue lisäksi svg:width- ja svg:height-attribuutteja. Manuaalinen ODF-legenda jättää chart:legend-position-attribuutin pois, koska kyseinen attribuutti ohittaa absoluuttiset koordinaatit
Esimerkki
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);
Katso myös