+31 (0)20 4535357

TeeChart Pro 2019 VCL/FMX with s/c

Meer Views

TeeChart Pro 2019 VCL/FMX with s/c
Development Artikel nr.C-teeChart Pro with s/c

TeeChart Pro charting component library offers hundreds of Graph styles in 2D and 3D for data visualization, 56 mathematical, statistical and financial Functions for you to choose from together with an unlimited number of axes and 30 Palette components.

  • Steema
  • Windows


Main features

TeeChart Pro 2018 charting component library offers hundreds of Graph styles in 2D and 3D for data visualization, 56 mathematical, statistical and financial Functions for you to choose from together with an unlimited number of axes and 30 Palette components.

Full source code

100% TeeChart Pro VCL / FMX source code is available as an option. The TeeChart source code supports Embarcadero Windows IDEs (RAD Studio, Delphi and C++ Builder), RAD Studio 10.2 Tokyo (RX/DX/CX) and now includes native code FireMonkey support enabling you to use common sourcecode to compile your applications for Windows, Mac OS, iOS / iPhone and Android.

Fast speed and small memory size consumption

The Chart graphical code speaks directly to Windows GDI API. Data is stored in dynamic arrays that are very closely mapped to memory which makes access and modifying the arrays almost as fast as the computer processor. The code is streamlined as much as possible to increase internal speed, especially when re-drawing. Other rendering outputs are OpenGL (3D), SVG, DirectX, etc but they aren't as fast as plain old GDI for realtime charting.

Divided into several modules (units) to reduce executable size

A chart using the basic styles ( line, bar, area, pie, point ), has an executable size of only 190Kb. Packages (groups of units), are logically grouped depending on the category of each feature. Developers can create custom packages or .Net assemblies to group modules as per their own needs.

Easy to use at design and run-time

TeeChart includes powerful and complete editor dialogs, for almost every component and sub-component. These editors are available at design-time and also at run-time. The TeeCommander component (a toolbar with charting specific buttons) provides one-click access to TeeChart editors, print preview dialogs and common features.

Complete Object Oriented API

The architecture of TeeChart is fully Object Oriented. Almost everything is an object or belongs to an object class. Properties, methods and events follow a general, consistent style. Technically speaking, TeeChart Pro consists of 161 modules (units) and 90 form screens, totalling 798 object classes. Each class has properties that in many cases are other sub-classes, either from TeeChart API or from Embarcadero's VCL set of classes.

Huge documentation and examples

The help file and documentation include a reference guide, a user guide, demos with detailed "how to" explanations, end-user help and a comprehensive example project (with complete sources) that contains 376 forms. The TeeChart help file follows the look and rules of Embarcadero's help system and is completely integrated at design-time from the development IDE's. Pressing F1 gives context help for almost all screens and source code elements.

Translations into several languages

Available in 37 languages, translated dialogs and constants can be used both at design-time (if you recompile the packages or assemblies), and at run-time by just recompiling your application. Once your application is compiled, end-users can switch the language for TeeChart dialogs and constants at runtime, without needing any external file or dll, just a single call like - TeeSetSpanish();

Nieuw in deze versie


  • Embarcadero Studio XE7
    Full support for XE7, Delphi and C++ for all platform projects.
  • Appmethod 1.15
    Run-time only support (design-time packages aren’t supported).

Mouse Hovering

  • When moving the mouse over some parts of a Chart, they are now highlighted. This includes Series points, Legend, Axis labels and Annotation objects.

  • To disable hovering completely for a given chart, set the Hover.Visible property to False


      • Chart BufferedDisplay
        The default value of Chart1.BufferedDisplay property is (finally) True for Firemonkey Charts. (Default value in VCL has always been True).
        The importance of BufferedDisplay is bigger in mobile applications (using the GPU Canvas) than desktop projects.  The internal bitmap buffer gives a big speed increase when repainting a chart many times (like when scrolling or zooming chart data).  Another internal change (caching a Firemonkey TextLayout) also increases the speed of painting texts (axis labels, legend items, etc).
        The current issue with mobile devices is that graphics GPU speed (and the CPU speed) is still much lower compared to normal desktop computers.  Ten times slower for most devices. This means some animations or simply zooming a chart on a desktop that runs at 30 frames per second, will execute at just 3 frames per second on a mobile device, which is quite unusable.
        XE7 Canvas has several improvements that, together with the above changes in TeeChart code, shows a typical increase (on for example Google Nexus devices), from 4 to 19 frames per second.
        Incoming plans to speed-up TeeChart are testing the new “FMX Enhancements / LKSL” open-source libraries from “LaKraven Studios Ltd.”  See this GitHub repository

Other changes

  • For new XE7 MultiDevice FMX UI editor, Series Data is not duplicated for each UI view.
  • A new TCoordinate internal type avoids many IFDEF FMX to distinguish between VCL and FMX. It is defined as Single in FMX, and Integer in VCL.
  • Improved scrolling of Logarithmic axes when dragging a chart by mouse or finger.
  • Usage of BDE (Borland Database Engine) has been removed for XE7 (BDE is now deprecated).
  • TChartAxis Grid DrawAlways boolean 
  • HTML5 Javascript export format now uses the latest online version of teechart.js script.
  • Improved display of rotated axis labels at 45 degree.
  • Changed default value for Gauges Face.Visible property (now False).
  • MarksTip tool HideDelay property is now used with SystemHints = False (custom hints).

XE5 Update 2

  • C++ iOS linker requires packages to be located under IDE \Lib\iosDevice\Debug folder. TeeChart Pro packages are copied to that folder when recompiling and installing them using the TeeRecompile or TeeInstall tools.
    Original TeeChart Lite iOS packages are still copied to Lib\Backup_TeeChart folder, and restored from there when uninstalling TeeChart Pro (using the TeeInstall tool).


  • New property DrawQuality : TStretchDrawQuality   (default value: sqHigh)
    Available for both GDI+ and GDI (VCL) and Firemonkey
    For GDI, low quality means to use GDI StretchDraw / Blt instead of TeeSmooth internal algorithm. For GDI+, quality is managed using GDI+ InterpolationMode (HighQuality or NearestNeighbor)
    In Firemonkey, Canvas.DrawBitmap is used (HighSpeed parameter).
    Chart1.BackImage.DrawQuality := sqLow;


  • New property UseSeriesTransparency : Boolean (default True)
    When False, series marks will be painted using their own transparency, without accumulating the marks series transparency, if any.
    Series1.Marks.UseSeriesTransparency : = False;

New Series (FireMonkey)

  • VCL series TImagePoint and TDeltaPoint have been ported to FireMonkey.

All Series

  • New Series.Legend property of type TTextShape. This new property includes a Picture property to display an image or icon for each series at the Chart Legend Symbol.
    Thanks to this new property, the existing Series1.ShowInLegend is now equivalent to Series1.Legend.Visible, and Series1.LegendTitle is the same as Series1.Legend.Text.

TImagePoint and TDeltaPoint

  • Improved painting of legend symbols, these series now show the corresponding image for each point at the legend (for VCL and FireMonkey).

ColorGrid, Surface, TriSurface Series

  • Speed improvements, caching calculated values to avoid repeating and spending time at each repaint (like when doing zoom and scroll). Adding or modifying series point values empties the cache so it will be recalculated at the next repaint.
  • Experimental for OpenGL canvas only:   New “Reuse3D” protected property. When True, 3D Surfaces will be displayed from data in the GPU memory instead of creating and moving it from the CPU.   This means (in most cases) greater speed when redrawing a chart (like when zooming, scrolling or rotating).
        type TMySurface=class(TSurfaceSeries);
        TMySurface(Series1).Reuse3D := True;

Bar and HorizBar Series

  • Cylinders are now painted filling them with gradients, instead of drawing “sides”. The output is of much better quality (and speed), although currently there is no rotation of gradients when the chart is rotated with 3D perspective.
  • The ConePercent property  (from 0 to 100, default 0) is now published (it was public).

Contour Series

  • Null values (in grid cell data) are now supported. Contour levels will not use null data.
    Series1.SetNull( 23 );  // ← point index 23 is now null
  • New Filledproperty (boolean, default False). This property is equivalent to setting Brush.Style := bsSolid, but more convenient and easy to remember.
  • Changed filling algorithm. Cells are now filled using exactly the same calculation as contour level lines. Performance note: Although cell filling is performed with GDI+ disabled antialias (to avoid visual artifacts), the old GDI canvas is faster.  GDI+ polygon filling is slower than GDI, and this is very noticeable when painting thousands or millions of cell segments. For best speed use the OpenGL Canvas  (with the TTeeOpenGL component or directly using TGLCanvas class).
  • Improved repaint speed Contour levels calculation is cached between repaints (if no series data or colors have been changed).


  • Support for Transform animations at polygon level. That is, each polygon in the Map series (or WorldMap series) can be independently translated, scaled and rotated.
    Right now the Transform property is protected as its not yet completely defined.
  • New RenderMode property. Default is “rmDefault”. When setting to “rm2D” in 3D mode, polygons will be displayed using the same “Z” coordinate (the same Z as the parent series). By default each polygon has its own Z position and, in 3D, it displays at a different “depth” position.  Setting RenderMode to rm2D disables this.


  • New maps: UK and Germany counties. Note: County label names not yet included.
    As a result of the global modifications to TMapSeries, World maps are now faster, and specially fast if you’re using OpenGL Canvas both in 2D and 3D.
  • New property: KeepAspect (boolean, default True). When displaying a map, the aspect ratio (width vs. height) is by default applied to axis scales to not distort the map appearance, also when resizing the chart. Note: Chart1.Zoom.KeepAspectRatio should be set to True to preserve width-to-height proportions when zooming maps.

Polar Contour Series

  • New series style to display contour lines from XYZ data using Polar (Angle and Radius) coordinates.
    This series is derived from Polar series class (to draw circular background, axes, etc), and includes a Contour series internal field (to calculate the contouring lines, customize contour levels, etc).
    “X” indexes are converted to angles (from 0 to 360 degree).  For example if the 3D grid has NumXValues = 10, then every angle interval will be 36.
    “Z” indexes determine the radius, and the “Y” values are used to calculate the level lines.
    Data can be manually added using the Series1.AddXYZ or AddNullXZ methods.
    SeriesStats Tool
  • New method to remove (destroy) all series that have been created using the Series Stats tool editor dialog:
  • New button at Series Stats dialog editor that allows removing (destroying) all series added using it.

TLegendPalette tool

  • New Title, SubTitle, Foot and SubFootproperties are now persisted at design-time and can be accessed also by code:
    ChartTool1.Title.Caption := ‘Speed’ ;
    This is equivalent to access:  ChartTool1.Chart.Title.Caption

FastLine Series

  • New experimental code to draw multiple fast-line series in parallel using more than one CPU (see below for complete info).
  • New (advanced) protected properties to indicate FastLine to avoid recalculating axis coordinates for X and/or Y values. If you are displaying realtime FastLine updates and need top speed, and your “X” coordinates never change (Y values are the ones changed only), then you can set this boolean flag to save the time to recalculate X positions in axis space again and again:

Polar, Radar and WindRose Series

  • New property ColorEachLine boolean property (default True).
    When ColorEachPoint is True, ColorEachLine determines if lines connecting points will be also colored segment by segment.

TDragPoint tool

  • Implemented point dragging support for Polar (and Radar, WindRose) series. Just add a DragPoint tool and set its Series property to a Polar or derived series.
  • New OnEndDrag event, called when the mouse button is released after a dragging operation.


  • New option to disable manually editing at the “Data” tab of Chart Editor dialog (the TChartGrid control).
  • VCL: Default Monitor to show the Chart Editor is now set to Desktop monitor.


  • Speed improvement for all 3D grid series (ColorGrid, Surface, etc) by replacing a loop with a binary-search algorithm in GetSurfacePaletteColor method which is used to calculate the appropiate color of a given “Y” value using the Palette array. Typical gains are about 30% faster for big series (for example a ColorGrid of 1000x1000 cells).


  • Anscestor class has been changed for TPoint3DSeries. Instead of TCustom3DSeries, now its TCustom3DPaletteSeries. This adds automatically all the palette properties to Point3D series, allowing each Point3D point to be colorized based on its Y value.  (This is the same class that other series like Surface, ColorGrid, etc inherit from).

TLineSeries, TPolarSeries

  • New PointerBehind boolean property (default is False). This applies to all series derived from Line and Polar that have a Pointer property. When PointerBehind is True, pointers will be displayed behind the line (in 2D mode only).
    Also the line draw style should be set to “dsAll” (to draw first all pointers and then a line using all points, instead of one-point, one-line “dsSegments”)

TPolarSeries (Radar, etc)

  • New AngleLabels property groups all (now deprecated) CircleLabelsXXX properties into a common place:
  • New DrawStyle property (default “dsSegments”) Setting DrawStyle to dsAll will draw the Polar line connecting all points using a single Polyline instead of multiple “segment” lines. This means its now possible to set Pen.Fill properties like Gradient (Radial direction) to colorize lines depending on each point distance to the polar center.


  • New SeriesList property (of type TCustomSeriesList) allows selecting one or more Series to export data, instead of exporting all Series in a Chart.
    uses TeeStore;


  • New property DrawBehind (boolean, default False). DrawBehind determines if the legend has to be painted below (behind) or on top of Chart.
    This is useful when ResizeChart is False, to make the legend “float” over the chart.


  • New ValueIndex property that can be used in OnCalculate event. The ValueIndex is the loop iterator position, and it only makes sense to use it inside the OnCalculate event.
    The default value for ValueIndex outside the event is “-1” (no index).
    ValueIndex range goes from “0” to TeeFunction1 “NumPoints-1”
    procedure TForm1.TeeFunction1Calculate(Sender: TCustomTeeFunction;  const x: Double; var y: Double);  

Axis Title

  • New Position property (Start, Center, End), default = Center. By default axis titles are positioned to the middle of the axi 


  • New TeeAnimation class to display Line series progressively. The animated GIF picture below shows line series with progressive animation:  
    A LineAnimation can be created at runtime (Chart1.Animations.Add(TLineAnimation.Create)) or at design-time using the Chart Editor dialog, Animations subtab.


  • New protected property PlayByFrames (boolean, default False). When True, the animation is performed without considering the time interval, that is, all animation frames are played as fast as possible.
    This  is useful for the new feature explained below in GIF export format (creating an animated GIF picture using a Chart Animation or a TeeAnimate).
  • New optional parameter in Play method:  SynchronizeMain (boolean, default True). When calling Animate.Play passing False, there will no thread synchronization with the main UI thread. This can be useful to play animations that should play “locked”, and not leave “time” to the user interface.  This means animations will not refresh the Chart display, they will be “hidden” animations.  The animated GIF feature uses this mode to create the animated picture without repainting the chart at each frame.

Animated GIF export (VCL only)

  • New optional Animation and Animate properties, when either assigned, creates an animated GIF file from the frames generated while playing the animation.
    The Animation (or Animate) Speed (frames per second), Duration and Loop properties define how is the GIF created.  Typical animated GIFs use 15 fps or less to avoid generating a huge *.gif file. uses TeeGIF;
  • New OptimizeColors property (boolean, default False).  When True, GIF colors are “optimized” (see VCL TGIFImage for more info).

OpenGL Canvas (TGLCanvas)

  • Implemented support for 2D clipping rectangle (Chart1.ClipPoints:=True). Note: Clipping only works correctly with Chart1.View3DOptions.Zoom:=100 (no zoom).
  • Pen Transparency supported (when Pen.Color Alpha component is <> 0)
  • Fixed detection and request for multi-sample (anti-alias) OpenGL pixel formats.
  • Improved speed of Polyline method, used by FastLine series when DrawStyle = All. All FastLine data points are sent to the GPU with a single OpenGL operation.
  • New ScreenSync property (ssSystem, ssYes, ssNo) to enable or disable monitor refresh VSync synchronization.   If you need more than (typically 60hz frames-per-second), disabling ScreenSync might provide more repaint frames per second.
  • Implemented support for Transform animations.
  • New PolygonConcave method.  Non-convex simple polygons are first converted to triangles (tessellated) and then the triangles are painted. Note:  As tesellating is a costly operation, its better to pre-calculate the triangles and reuse them if the polygon coordinates have no changed.
  • New TGLCanvas Tessellate method. Returns an array of PointFloats with the triangles calculated to cover the polygon points passed as XY arrays. Used currently only by Map and World series. Calculation is done using the GLUT dll Tessellator object. The resulting array can then be displayed using  the new TCanvas3D Triangles method.


  • New class function IsConvexPolygon. Returns true when the passed P (array of points) parameter forms a “convex” simple polygon.
  • Important change: TPointFloat and TPoint3DFloat records fields are now of type Single instead of Double. This was necessary for many reasons (FireMonkey, OpenGL in VCL, iOS and Android, speed, etc).
  • VCL only: Several methods have new overloads with Single parameters instead of Integer. (MoveTo, LineTo, etc). This is not necessary for FireMonkey as in FireMonkey all point coordinates are already of  type Single.


  • New class procedure ResizeBitmap. Passing a source and destination bitmap, GDI+ will be used to stretch the source bitmap onto destination bitmap using destination dimensions, in “high quality” mode.


  • New Scale property (Single, default = 1) When <> 1, the chart size used to create the exporting image is internally scaled (reduced if Scale is < 1 or enlarged if Scale > 1).  A Scale of value 0 is considered 1.
    This Scale property is used by GIF, PNG, JPEG and PCX raster formats. For vectorial formats like HTML5, JavaScript, PDF, SVG etc its not used as it doesn’t apply.

Multi-CPU Parallel ThreadsNote: This is an experimental feature

  • A new TChart property enables internal usage of Thread objects to improve speed using multiple CPUs (when available).
    One example is when using several FastLine series with many points, refreshing them at maximum speed, using several threads (one per series) might reduce the time spent calculating screen pixel positions.
    Visit this link for more info:  http://steema.com/entry/192/TeeChart_FastLine_Speed

Image Export Formats

  • New property common to all picture exporting formats: Scale (type Single, default 1)
    Set Scale to create a picture bigger ( Scale > 1 ) or smaller ( Scale < 1 ) than the exported Chart dimensions. JSON Export Format
  • New DateTimeFormat property to choose how to export series values that are datetime. Default format is “jdTimestamp” (using Delphi RTL TDateTime). Another format option is “jdJavaScript” (Unix Timestamp since 1-1-1970)

HTML5 JavaScript Export

  • Improved support for DateTime Series values. When a Series contains datetime values (in either X or Y Value lists), the JavaScript export format will convert them to JScript Date objects (starting in Jan-1st 1970), and will automatically include the date.format.js script to support date formatting in chart labels, legend, etc.




IDEs supported

Full support for Embarcadero Windows IDEs (RAD Studio, Delphi and C++Builder) and FireMonkey framework enabling to compile apps for Windows, Mac OS, iOS / iPhone and Android.
Embarcardero IDEs supported include:
- Delphi XE to XE8, Delphi 10 Seattle, Delphi 10.1 Berlin
- C++Builder XE to XE8, C++Builder 10 Seattle, C++Builder 10.1 Berlin
- RAD Studio XE to XE8, RAD Studio 10 Seattle, RAD Studio 10.1 Berlin
- Delphi 7, Delphi/C++ Builder/RAD Studio 2007, 2009 and 2010 (sourcecode version only)

  • zip

    Specialist in software

    CD & E Distribution kent de wensen van de klant en is hierdoor een belangrijke speler in de wereld van software distributie

  • zip

    Versturen door heel Europa

    Wij versturen de software naar ieder gewenst land in Europa.

  • zip

    Betrouwbare kwaliteitssoftware

    CD & E Distribution streeft ernaar om software van hoge kwaliteit met een acceptabele prijsstelling te leveren.

Don't take our word... Try us!