مستندات HotXLS

کلاس TXLSXChartLayout

TXLSXChartLayout یک layout دستیِ محافظِ فیلدها را برای plot area ها، عنوان‌های chart یا محور و legend ها نگه می‌دارد

اعلان

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;

مدل مختصات

X، Y، Width و Height نسبت به مستطیل chart نرمالیزه می‌شوند. در حالت Edge، X و Y مختصات چپ و بالا هستند، width و height لبه مختصات راست و پایین را می‌دهند، X و Y از نوع factor جای خودکار را جابه‌جا می‌کنند و width و height از نوع factor اندازه‌های نسبی به chart هستند
این مدل هر فیلد و حالت را مستقل نگه می‌دارد. فیلدهایی که موقع بارگذاری غایب‌اند غایب می‌مانند و توکن‌های عددی نامعتبر در یک ذخیره‌سازی بدون تغییر سرجایشان می‌مانند، در حالی که رندر به هندسه خودکار fallback می‌کند
layout عنوان ممکن است فقط X و Y را داشته باشد و اندازه اندازه‌گیری‌شده خودکار را حفظ کند. layout های plot-area و legend به هر چهار مختصه نیاز دارند
SetPositionAndSize هر چهار مقدار را در یک فراخوانی اختصاص می‌دهد، حالت‌های آن‌ها را موجود علامت می‌زند و layout را فعال می‌کند. setter های تک‌مقداری هم layout را فعال می‌کنند

حالت‌ها و target

xlsxChartLayoutEdgeموقعیت از لبه chart، به‌صورت پیش‌فرض برای X و Y به کار می‌رود
xlsxChartLayoutFactorضریب اندازه یا آفست، به‌صورت پیش‌فرض برای width و height به کار می‌رود
Targetمستطیل plot داخلی یا بیرونی و فقط برای PlotAreaLayout معنا دارد

محاسبه و تبدیل

TXLSXChartLayoutResolver مستطیل‌های عنوان، legend، plot-area داخلی و بیرونی و عنوان محور را یک‌بار برای خروجی‌های pagination، SVG، PDF، تصویر، preview، چاپ، viewer و HTML محاسبه می‌کند. هندسه نامعتبر یا ناقص همان مستطیل خودکار را نگه می‌دارد، در حالی که مستطیل معتبر ولی خارج از محدوده بدون تغییر اندازه به نزدیک‌ترین موقعیت داخل chart منتقل می‌شود
تبدیل ODF هندسه محاسبه‌شده را به فواصل مطلق chart نگاشت می‌کند. عنوان و legend از svg:x و svg:y استفاده می‌کنند و plot area علاوه بر آن‌ها از svg:width و svg:height هم استفاده می‌کند. legend دستی ODF شامل chart:legend-position نمی‌شود، چون این attribute بر مختصات مطلق اولویت می‌گیرد

مثال

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

همچنین ببینید