Chart Axes
|
- Labels can be fully customized
using Items[ ] array property.
This makes easier to customize axis labels without using
events like OnGetAxisLabel, etc.
Also, each label item is a full object with properties
like Color, Font, etc.
|
Chart1.Axes.Left.Items.Clear;
Chart1.Axes.Left.Items.Add( 123, 'Hello' );
|
- Axes can be positioned along
the Z (depth) direction when showing in 3D mode:
|
Chart1.Axes.Left.ZPosition
:= 100;
|
- Axes can have Offsets (in
pixels) for both Minimum and Maximum scales:
|
Chart1.Axes.Left.MaximumOffset
:= 4 ;
Chart1.Axes.Left.MinimumOffset := 4 ;
|
- Axis labels are now individual
objects derived from TeeShape
object.
By default they are set to transparent, and can be configured
to display a filled background, shadow, gradient, etc.
|
Chart1.Axes.Left.LabelsFormat.Color
:= clYellow ;
|
- Axis in Logarithmic
mode now accept floating point values for Logarithmic
base.
This allows, for example, setting a logarithmic axis of
base "e" ( e = Exp(1) = 2.71...)
|
Chart1.Axes.Left.Logarithmic
:= True ;
Chart1.Axes.Left.LogarithmicBase := Exp(1) ; //
2.71...
|
- New PositionUnits
property to specify PositionPercent
as percentage or pixels.
|
| |
Canvas
|
- Charts can be rotated 180
degrees along the horizontal (x) axis.
In previous versions, canvas was allowed to rotate 90
degrees only.
Using OpenGL charts can be fully rotated 360 degree.
Example to show how to "auto-hide" left and
right walls while rotating the chart.
|
- The center position of Radial
gradients can be customized with the new Gradient.RadialX
and RadialY properties:
|
Chart1.Walls.Back.Gradient.RadialX
:= 123;
Chart1.Walls.Back.Gradient.RadialY := -321;
|
- Gradients provide a Balance
property to apply more Start or more End colors:
|
Chart1.Walls.Back.Gradient.Balance
:= 40; // %, default is 50 %
|
- Canvas include new properties,
methods and new overload methods:
|
Chart1.Canvas.FontZoom
:= 110; // % global font size zoom
Chart1.Canvas.Rectangle(
R );
Chart1.Canvas.StretchDraw(
R, Bitmap, Z ); // 3D stretch of pictures
Chart1.Canvas.Line(
P0, P1 ); // P0 and P1 are TPoint
Chart1.Canvas.PolyLine(
[P0,P1,P2...] );
Chart1.Canvas.PolyLine(
[P0,P1,P2...] , Z); // for 3D
Chart1.Canvas.Pixels[x,y]
:= clRed; // now is read-write
Chart1.Canvas.RotatedEllipse(
Left,Top,Right,Bottom,Z,Angle );
// returns
if points are faced to viewer
TeeCull( P0,P1,P2 ):Boolean;
PointAtDistance( FromPoint, ToPoint, Distance ):TPoint;
|
- Anti-Aliasing.
Example of use of TeeAntiAlias
procedure, to smooth curved lines on screen display.
|
- Rotated Ellipses.
New Canvas RotatedEllipse
method to draw ellipses in 3D mode with rotation.
|
- Polyline method.
New Canvas Polyline method
to draw multiple lines at once, passing an array of TPoint.
|
- StretchDraw
3D.
New Canvas method to display a bitmap in 3D mode with
rotation.
|
- RichText drawing.
Example showing how to display RTF (RichText) formatted
text over a Chart Canvas.
|
- OrthogonalAngle
now supports from 0 to 180 degree.
|
| |
Chart Legend
|
- Legend symbols can now display
using a customized border.
By default, legend symbols use the Series border.
|
Chart1.Legend.Symbol.DefaultPen
:= False ;
Chart1.Legend.Symbol.Pen.Color := clRed ;
|
- Legend symbols can now be
"squared" (same width as height).
|
Chart1.Legend.Symbol.Squared
:= True ;
|
Chart Walls
|
- The four chart walls now
support transparency, even with gradient filling:
|
Chart1.Walls.Left.Transparency
:= 70 ; // % of transparency
|
- The Back wall can now be
filled with an image in 3D display mode (orthogonal or
not).
|
|
Chart Panel
|
- New Border pen and BorderRound
properties,
to draw borders around chart panel in rectangular or rounded
mode.
This new Border is drawn outside the current bevels.
The old "BorderStyle" property is now obsolete.
|
Chart1.Border.Color
:= clBlue ;
Chart1.BorderRound := 50 ; // pixels
|
- Chart Margins can be expressed
as percentage or pixels.
|
Chart1.MarginUnits
:= muPixels ;
Chart1.MarginLeft := 10 ; // <--- 10 pixels
|
- Chart Panel now includes
a Shadow property.
|
Chart1.Shadow.VertSize
:= 6 ;
|
All Series
|
- All Series styles now provide
OnMouseEnter and OnMouseLeave
events.
These events are triggered when the mouse enters and exits
a series point.
- All Series now provide a
new method to order points by their corresponding "Label"
(point text):
|
Series1.SortByLabels(
loAscending ); // default is ascending
|
All Series Marks
|
- Series Marks new CallOut
property, to change the appearance of lines connecting
marks to series points.
New styles: Callout, rectangle, ellipse... and new properties:
size, brush, distance.
|
Series1.Marks.ArrowShape.Style
:= asArrowHead ;
|
- Series Marks can now be
individually customized (font, color, etc)
|
with
Series1.Marks[3] do
begin
Font.Size:=14;
Color:=clSilver;
end;
|
Bar and Horizontal Bar Series
|
- Bar and Horizontal Bar series
provide a new stacking style to display a single series
"self stacked".
|
Series1.MultiBar:=mbSelfStack;
|
- New bar style: "bsBevel"
and BevelSize property, to
draw a rectangular bevel (in 2D and orthogonal 3D modes
only).
|
Bubble Series
|
- Bubble series can now fill
points using a gradient, with a default "radial"
gradient style.
|
Series1.Pointer.Gradient.Visible
:= True ;
|
|
|
Series1.Transparency
:= 50 ;
|
|
- Small code to adjust left
and rigth margins for Bubble charts:
|
var
tmp : Integer;
begin
with Series1 do // (Series1 is a Bubble
series)
begin
tmp := GetVertAxis.CalcSizeValue(RadiusValues.First);
GetHorizAxis.MinimumOffset := tmp;
tmp : =GetVertAxis.CalcSizeValue(RadiusValues.Last);
GetHorizAxis.MaximumOffset := tmp;
end;
end;
|
Candle Series
|
- New drawing style "csLine"
to display a simple line using Close values.
|
ColorGrid Series
|
- ColorGrid series can now
display Marks.
|
Series1.Marks.Visible
:= True ;
|
|
- ColorGrid can be displayed
in "centered mode".
This mode means cells will correspond to grid values.
This is now the default mode.
Previous version was "non-centered", thus eliminating
one top-side row and one right-side column.
|
Series1.CenteredPoints
:= True ;
|
- ColorGrid now accepts a
Bitmap image as a datasource of grid values
|
var
tmp : TBitmap;
begin
// temporary bitmap:
tmp:=TBitmap.Create;
try
tmp.Assign(Image1.Picture.Graphic);
Series1.Bitmap:=tmp;
finally
tmp.Free;
end;
|
Contour Series
|
- Contour series calculation
of "levels" now provide a collection of "segments"
(lines) per level.
Each segment is composed of normal XY points.
This permits mouse hit detection (Clicked
function) and OnMouseEnter
events.
|
|
- A new property "Smoothing"
draws level lines using a fitting spline function:
|
Series1.Smoothing.Active
:= True ;
|
|
- New event in Contour series
"OnBeforeDrawLevel".
This event is called just before each contour level is
going to be displayed.
One example of use is to change the level Pen for some
particular level lines.
|
|
FastLine Series
|
- FastLine series now supports
null points and can draw in "stairs" mode:
|
Series1.SetNull(
123 ); // <-- make null (empty) point
index 123
Series1.IgnoreNulls := False; // <-- allow null points
Series1.Stairs := True;
// <-- set "stairs" mode
|
Pie Series
|
- Pie series marks are now
automatically positioned to avoid overlap as much as possible.
|
Series1.AutoMarkPosition
:= True ;
|
- New Pie Legend property
to display "other" pie slice sub-elements in
an extra legend
|
Series1.OtherSlice.Legend.Visible
:= True ;
|
- New property to draw Pie
slice borders using each slice color (instead of same
Pen color for all slices)
|
Series1.DarkPen
:= True ;
|
Polar & Radar Series
|
- New Gradient
property to fill polar (and radar) interior.
- New DrawZone
method to fill circular background portions.
- Support for Logarithmic
axis.
|
Surface Series
|
- Surface series can now display
cells with transparency:
|
Series1.Transparency
:= 50 ;
|
|
All 3D Series
|
- All 3D Series (surface,
contour, colorgrid, etc) include a new method
to add a bi-dimensional array (x by z grid of values).
|
var A
: TArrayGrid; // = array of array of double
x,z : Integer;
begin
SetLength( A, 5, 7 ) ;
for x:=0 to 4 do
for z:= 0 to 6 do
A[x,z] := Random ;
Series1.AddArray( A );
end;
|
- Custom Colors for individual
points are no longer overriden by ColorRange
or ColorPalette.
|
- Small routine to perform
"gridding".
The "Gridding" algorithm creates a regular grid
(ie: surface) from arbitrary floating xyz points.
|
Chart Tools
|
- Annotation Callout
The annotation tool now provides a "Callout"
sub-property, to display a line and a pointer shape, from
the annotation to a given XY coordinate.
|
- ColorLine 3D
The ColorLine tool can optionally display the 3D part
of the line (when in 3D display mode).
New Style property to automatically
display a line at axis Minimum, Center or Maximum.
|
- Rotate Outline
New pen property in Rotate tool to display a wireframe
chart outline while rotating (while mouse is pressed),
to avoid repainting the whole chart when rotating it.
ChartTool1.Pen.Visible := True ;
|
| |
| |
| |
| |
Database Chart
|
- Automatic Summary Order.
Summaries from databases can now be automatically sorted
(in ascending or descending order) by summary calculation
(value) or by summary group (text).
The summary editor dialog includes new comboboxes to configure
ordering at design-time or run-time.
|
Series1.XValueSource :=
'#SORTASC#GroupField' ;
Series1.YValues.ValueSource := '#SUM#ValueField' ;
|
- Crosstab
source component.
Enables displaying a multi-series chart from a DataSet,
grouping by a desired field.
|
| |
| |
Chart Editor
|
- Example to show how to hide
datasets in chart editor (series datasource tab)
- New "RememberPosition"
boolean property to persist the chart editor dialog position
at runtime into registry.
- New Series
property to show desired Series editor when setting DefaultTab
property to "General" or "Marks".
|
ChartGrid component
|
|
|
ChartGrid component can now
display XYZ series (3D series) data in "grid mode",
instead of showing xyz data as three columns.
|
ChartGrid1.Series:=Series1;
// <-- must be XYZ grid series
ChartGrid1.Grid3DMode:=True ;
|
| |
New Chart Tools
|
|
|
3D Transpose tool "rotates"
any 3D series 90 degrees.
It does exchange x with z values.
Works with any Grid3D series (surface, etc).
A similar visual effect can also be obtained setting the
Bottom and Depth axes Inverted
property to True, although the transpose tool modifies
the real xyz data.
|
|
|
|
ExtraLegend tool displays
additional legend objects.
The tool has a Series property to display legend with
series values and / or texts.
|
|
|
|
The SeriesAnimation tool
displays an animated growing chart:
|
ChartTool1.Execute;
|
-
Gantt Mouse dragging tool
|
New tool ( GanttTool ) offers
mouse interaction to drag and resize Gantt bars.
|
|
|
|
The GridBand tool enables
filling axis grid space with alternate color bands, each
one using a different brush.
|
|
|
Displays a border around
pie slice currently under mouse cursor.
|
|
New Components
|
|
|
New XML source component,
to import xml data from files or web URL's into chart
series.
The XML format to import data is the same as when exporting
chart series data to XML.
Use of MSXML DOM activex object is done as late-bound,
to avoid using typelibraries.
Please
follow this web link for a Tutorial on using TeeXMLSource
component.
|
The examples show how import
one series from a Memo containing xml data,
and one full Chart from a URL pointing to a file with
several series data in xml format.
|
|
|
Enables creating crosstab
charts from database datasets at design-time and runtime.
|
| |
|
New Tee Functions
|
-
Smoothing Spline function
|
The new Smoothing function
interpolates points using a B-Spline algorithm.
Several properties control the Spline calculation.
The smoothed points can optionally pass just exactly over
the source points.
|
|
|
|
New Custom function to calculate
y = f(x) values using an OnCalculate event:
|
procedure TForm1.TeeFunction1Calculate(Sender:
TCustomTeeFunction;
const x: Double; var y: Double);
begin
y: = Sin(x / 10);
end;
|
|
-
Compression OHLC (Candle)
function
|
Compression function calculates
high and low values for a group of points.
Results are plotted using a Candle series.
Suitable for displaying Candle OHLC data "weekly", "monthly",
etc.
|
|
|
|
CrossPoints function calculates
XY coordinates for crossing points of source line series.
The example shows a yellow line Series3 with points where
Series1 and Series2 cross.
|
-
CLV (Accumulation/Distribution)
financial function
|
-
OBV (On Balance Volume)
financial function
|
-
CCI (Commodity Channel
Index) financial function
|
-
PVO (Percentage Volume
Oscillator) financial function
|
|
|
Performance function calculate
the percentage of difference between each source point
and the first source point.
Calculation starts always at zero.
|
|
New Series styles
|
-
Point & Figure (financial)
|
|
|
|
|
|
|
-
Gauges (Instrumentation
indicators)
|
|
New Export formats
|
-
Adobe Acrobat PDF (Portable
Document Format)
|
|
|
|
|
|
Miscellaneous
|
- Delphi 7 support.
- Delphi 3 support removed
- Several
Property aliases
- Fixed
bugs
- StringGrid data to Chart
example
- Removed TeeProcs functions
MaxLong, MinLong, MaxDouble and MinDouble.
Replaced with equivalents Min and Max from Borland's Math
unit.
- New Series1.Clicked
overload method (accepts a TPoint instead of x,y)
- New function Series1.YValues.ToString(
123 )
Same as calling: FloatToStr( Series1.YValues[123]
)
- Removed grid size limit
in all 3D series (was 2000 x 2000).
Internal xyz grid data is stored into dynamically growing
arrays, with no limit on size.
- Shadow object now provides
transparency.
TTeeShadow class is used
by many other classes.
- Area series displays Gradients
when in Stairs mode.
- New Series1.SetNull(123)
method
Equivalent to set: Series1.ValueColor[123]:=clNone
- Removed special define TEENOCHECKOVER
This define is no longer necessary. See below the new
FastCalc property.
- New Chart1.Axes.FastCalc
property (to use fast assembler code)
This property enables axis calculations (from values to
screen pixels), using a faster code in assembler. Suitable
for FastLine real-time charts.
- Annotation tool now has
TextAlignment (left , center
or right)
- Export data formats (Text,XML,HTML,
etc) can now export series point Colors.
- TeeCommander new property:
EnablePieExploding (boolean,
default True).
This new property controls whether Pie series will be
exploded or not when dragging pie slices with the mouse.
- Axis LogarithmicBase
property is now of type "double", thus allowing for example
logarithmic axis of base "e" (2.71...)
- ADX function provides two
new properties of type TChartPen: DownLinePen
and UpLinePen, to control
display of ADX upper and lower lines.
- Candle series improvement
in Clicked function. Now
correctly calculates if mouse XY is over a candle or candle-stick
point.
- ColorPalette[
] array (TeeProcs.pas
unit) is now a dynamic array variable to allow changing
colors and expand the number of predefined colors for
points and series. (ie: When Series ColorEachPoint
is True).
- Histogram series now correctly
implements Clicked function,
for mouse hit detection, etc.
- Bar and Horiz. Bar Series
with "Rect.Gradient" style, display in 3D too.
- OnClick
event at Axis Arrow tool.
- Donut series can now display
in 3D.
- Canvas provides new method
to draw images with 3D rotation. (StretchDraw)
The Chart BackImage (in Inside
mode), ColorGrid series and ChartImage tool benefit from
this new method.
- TeeChart Wizard now installed
at Delphi / C++ Builder Help menu.
It now allows loading Chart templates (*.tee files) at
design-time for better reusability.
- Transparency and export
/ print preview support in OpenGL canvas.
|