TeeChart Pro VCL/FMX 2023.38.230607

Released: Jun 7, 2023

Updates in 2023.38.230607

Funktionen

  • New Series Types
    • Added new Slope Series (TSlopeSeries) which sorts and paints several lines into a single series. The vertical order of points is based on their ranking at each horizontal coordinate.
    • Added new Squarified Map (TSquarifiedMapSeries) which displays hierarchical data as rectangles inside rectangles.
  • New Functions
    • KDE (Kernel Density Estimation) - The application of kernel smoothing for probability density estimation. This function (TKDEFunction) was already available in Violin series and has now been refactored and published so it can be used in other series.
    • PPO (Percentage Price Oscillator) - A technical momentum indicator that shows the relationship between two moving averages in percentage terms.
  • New Tools
    • Chart Layout - Provides a way to create a grid of charts inside a chart. Includes row and column properties to configure the grid, and cell sizes can be specified in pixels or as percentage of total available space.
  • Additions
    • Added new TSelfStack Percent boolean property (default False) - Used by Bar and Horizontal bar series to paint all bars stacked as absolute values or as a percentage from 0% to 100%.
    • Added new TTeePicture Angle property of type Single (default zero 0) - Used by the new Canvas StretchRotate method to paint rotated pictures everywhere.
    • Added new TCustomTrendFunction Coefficient overload method with no first and last parameters (it uses the Source series range).
    • Added new TCustomTrendFunction TTrendFloat type (defaults to Double) - It can be changed to Extended (32bit) when more precision is needed.
    • TCustomSeries base class has been refactored, deriving a new class from it: TCustomStackSeries - The new TSlopeSeries class derives directly from TCustomSeries, while the existing TLineSeries, TPointSeries, TAreaSeries etc now derive from TCustomStackSeries.
    • Added new TCustomLineSeries base class, now the ancestor class of TCustomSeries and TFastLineSeries.
    • Added new TChartAxis AxisRect function, which returns the rectangle in pixels corresponding to the area where the axis and their labels are painted.
    • Added new TChartSeries AxisRect function, which returns the bounding rectangle in pixels of the series associated horizontal and vertical axes.
    • Added new TOscillatorFunction base class, ancestor for TPVOFunction and the new TPPOFunction classes.
    • Added new ChartSeries FormatValue method, shortcut to: FormatFloat(Series1.ValueFormat, Value) and FormatPercent, shortcut to: FormatFloat(Series1.PercentFormat, Value).
    • The Chart Gallery now enables you to change the number of columns (or zero, for automatic layout).
    • Ternary Series now derive from a new base class TCustomPointer3DSeries instead of directly from TPoint3DSeries. This optimizes code and properties that aren't usable by Ternary.
    • Added new SaveChartToString and LoadChartFromString methods, which allow you to convert a Chart into textual representation (default text format dfm).
    • TMapSeries and TWorldSeries can now persist their data values both at design and runtime - Pending to implement a versioning mechanism to support future modifications to maps (adding or removing countries or provinces etc) syncing to stored data.
    • Added new SubChart tool Clear method, which removes all sub-charts.
  • Canvas
    • The default canvas class for TeeChart controls is now GDI+ instead of GDI - The TeeGDIPlus unit is no longer automatically added to the uses clause of forms that have TeeChart control (TChart, TDBChart, TTree etc) because that unit is already implicitly used by default.
    • Added new Skia Canvas, experimental at new TeeSkia.pas unit, using Skia4Delphi project.
    • Added new TTeeCanvas class StretchRotate method, to draw a graphical image (TGraphic) inside a rotated rectangle parameter - It is used by several classes: TSeriesPointer, TImageBar, TImagePoint, TChartImageTool and TWorldSeries DrawFlag. Note: not yet available for old GDI canvas.
    • TTeeCanvas Font property can now be set, internally calling the AssignFont method.
    • Added new TTeeCanvas BeginBlending overload method, with a TPointArray parameter instead of a TRect rectangle.
    • Added new global TeCanvas.pas RotatePoints overload functions - They return a copy of an array of points rotated at a given angle from the array centroid point.
    • Improved display of images in GDI+ canvas, using TGPImage class directly.
    • Made changes in the PDF canvas to enable generating multipage documents.
  • New units
    • TCustPointEdit.pas a new form as a base for TCustomSeries editor.
    • TeeSkia.pas new Skia canvas for TeeChart VCL.
    • TeeSlopeSeries.pas new unit with new TSlopeSeries.
    • TeeSquarifiedMap.pas and TeeSquarifiedMapEditor.pas.
  • Removed
    • All packages for Delphi 4,5,6,7 CLX (Kylix) and C++ Builder 4,5,6 have been removed.
    • Support for Delphi 4,5,6 in source code has been removed.
  • Miscellaneous
    • New line characters in all source code files have been normalized to CRLF.
    • Tab #9 characters have been replaced with spaces in all source code files.
    • Added new internal GetNewToolName function at Chart.pas unit, which returns an unused name for a new Tool.
    • Several var parameters have been converted to "out" when possible.
    • Several inline methods have been moved up in the unit, before their first usage.
    • Three missing fields in forms have been restored.

Fehlerkorrekturen

  • TCustomSeries OnGetPointerStyle event is now public instead of published, and its published at all series deriving from it.
  • TChartSeries HoverElement property is now public instead of published, and its published at all series deriving from it.
  • Chart.pas global CloneChart function now calls ClearChart to completely initialize the destination chart before being cloned.
  • Several classes had missing properties in their Assign methods. The Assign method is called when cloning a Chart or a Series, Tool, etc. Also when duplicating them at the Chart Editor dialog.
  • Some classes were not properly streaming their properties into the dfm / fmx form, or custom streams when using the SaveChart methods.
  • Added default values for properties that were being streamed into the dfm / fmx when it wasn't necessary.
  • Several fixes related to multi-threading when using the GDI+ canvas, enabling creation of multiple charts in parallel using threads, parallel drawing into bitmaps, etc.