Comparing TAChart with Delphi's TeeChart Standard

From Lazarus wiki
Revision as of 11:48, 12 October 2012 by Ask (talk | contribs) (Introduction)

Introduction

This page contains a brief comparison of properties and methods between (trunk version of) Lazarus TAChart package and TeeChart Standard package which comes with Delphi XE2.

It can be used as a guide when porting applications from Delphi, as well as a source of inspiration for future TAChart development.

TeeChart's TChart

Public methods

to be written ...

Properties

TeeChart object explorer 1.png
  • Align: VCL/LCL property, the same as with TAChart
  • AlignWithMargins: VCL property, missing in LCL
  • AllowPanning: turns on/off built-in panning support. Not available in TAChart, but effect can be achieved by linking a TChartToolset to the chart.
  • Anchors: VCL/LCL property, the same as with TAChart
  • Animations: don't know, a click on the ellipsis button opens the series editor, maybe a feature of TeeChart Professional. Property missing in TAChart.
  • AutoSize: VCL/LCL property of some classes, don't know its effect, no entry in help file. Missing in TAChart.
  • AxisBehind: Boolean, default true: in 3D view, draws axis in the back wall, behind the series. If false, axes are drawn at the front wall, before the series. Property missing in TAChart, but effect can be achieved by TChartAxis.ZPosition.
  • AxisVisible: Boolean, default true: turns on/off axis title, marks, ticks, and grid of all axes. The same as with TAChart.
  • BackImage: Allows to add a background image (see also other "BackImage*" properties). Missing in TAChart.
  • BackImageInside: Boolean, default false: if true the BackImage is drawn in the rectangle defined by the axes or frame, otherwise it is a background image of the entire chart. Missing in TAChart.
  • BackImageMode: defines the way the image is drawn/repeated on the background, options (pbmStretch, pbmTile, pbmCenter, pbmCustom). Missing in TAChart.
  • BackImageTransp: Boolean, default false: If true the transparency is that of a TBitmap, i.e., the transparent color is taken from the left-bottom pixel of the image. If BackImage is an icon, BackImageTransp is true and cannot be changed. Missing in TAChart.
  • BackWall: see separate chapter on TChartBackWall. Missing in TAChart.
  • BevelInner, BevelOuter, BevelWidth: Bevel parameters like those of a TPanel -- TeeChart's TChart inherits from TCustomPanel. Missing in TAChart.
  • Border: see separate chapter on TChartHiddenPen, a frame around the entire chart. Missing in TAChart.
  • BorderRound: if grater than 0 the Border is drawn as a RoundRect with that radius. Missing in TAChart.
  • BorderWidth: Seems to have the same effect as the LCL's BorderSpacing.Around
  • BottomAxis: See separate chapter on TChartAxis.
  • BottomWall: See separate chapter on TChartBottomWall. Missing in TAChart.
  • Chart3DPercent: Ratio between chart dimensions and chart depth Chart.View3D is true. Similar to TAChart's property Depth of chart and some series.
  • ClipPoints: boolean, default true: toggles the drawing of series points within chart boundaries, preventing other chart regions from being overwritten. TAChart: ?
  • Color: Background color of entire chart, the same as with TAChart.
  • Constraints: Standard VCL / LCL property, the same as with TAChart.
  • Cursor: standard VCL / LCL property, the same as with TAChart.
  • CustomAxes: List of axes, like with TAChart, but seems to be without the default axes.
  • CustomHint: ???, missing in TAChart
  • DepthAxis: Characteristic of the bottom-right axis in 3D chart, see separate chapter on TChartDepthAxis. TAChart does not have a depth axis in 3D charts.
  • DepthTopAxis: Characteristics of the left-top axis in 3D chart, see separate chapter on TChartDepthAxis. Missing in TAChart.
  • DockSite: enables Docking, not supported by LCL, missing in TAChart.
  • DragCursor, DragMode: Drag and Drop support. Like in TAChart.
  • Emboss: ???, missing in TAChart.
  • Enabled: Not in help file, at least, turns off zooming and panning.
  • Foot: See separate chapter on TChartTitle. Like in TAChart.
  • Frame: See separate chapter on TChartPen. Like in TAChart.
  • Gradient: See separate chapter in TTeeGradient. Draws a gradient behind the entire chart. Missing in TAChart.
  • Height: Standard VCL/LCL property, the same as with TAChart.
  • HelpContext, HelpKeyword, HelpType: Standard VCL property, the same as with TAChart.
TeeChart object explorer 2.png
  • Hint: Standard VCL/LCL property, the same as with TAChart.
  • Left: Standard VCL/LCL property, the same as with TAChart.
  • LeftAxis: See separate chapter on TChartAxis.
  • LeftWall: See separate chapter on TChartLeftWall, describes left wall of 3D charts. Missing in TAChart.
  • Legend: See separate chapter on TChartLegend, describes legend parameters, like in TAChart.
  • LiveBindings: new VCL properties introduced in Delphi XE2. Missing in TAChart.
  • Locked: ???, missing in TAChart
  • MarginBottom, MarginLeft, MarginRight, MarginTop: Margin between "Border" and Axis, corresponds to TAChart's MarginExternal.
  • MarginUnits: options (muPercent, muPixels). According to the help file: "When MarginUnits is muPercent, chart margins are calculated as percentage of total chart width and height. Percent margins are useful to obtain the same margin proportions, no matter the chart size." muPercent missing in TAChart.
  • Margins: standard VLC property, in combination with AlignWithMargins. Like LCL's BorderSpacing.
  • Monochrome: if true, turns off colors and renders chart in grayscale.
  • Name: standard VCL/LCL property
  • Pages: accesses pages for a multi-page chart. Not supported by TAChart.
  • Panning: properties for built-in panning support. Missing in TAChart, but can be achieved by means of chart tools.
  • ParentColor: standard VCL/LCL property, the same as with TAChart
  • ParentCustomHint: ???, missing in TAChart.
  • ParentShowHint: standard VCL/LCL property, the same as with TAChart
  • PopupMenu: standard VCL/LCL property, the same as with TAChart
  • PrintProportional: no built-in printing support in TAChart
  • RightAxis: See separate chapter on TChartAxis.
  • RightWall: See separate chapter on TChartLeftWall, describes left wall of 3D charts. Missing in TAChart.
  • ScrollMouseButton: sets the button that will trigger scrolling when pressed. TAChart does not have built-in scrolling support, effect can be achieved by chart tools.
  • SeriesGroups: According to the help file: "Chart Series can be grouped. Series groups can optionally be displayed at the chart editor. The main purpose of groups is to have an easy way to show or hide multiple series, that is, show or hide individual groups of series." Part of this can be achieved in TAChart by multivalued series.
  • SeriesList: opens the chart editor. Missing in TAChart.
  • Shadow: See separate chapter on TTeeShadow. Missing in TAChart.
  • ShowHint: Standard VCL/LCL property, the same as with TAChart.
  • SubFoot: See separate chapter on TChartTitle. TeeChart allows for a second footer. Missing in TAChart.
  • SubTitle: See separate chapter on TChartTitle. TeeChart allows for a second title. Missing in TAChart.
  • TabOrder, TabStop, Tag: standard VCL/LCL properties, the same as with TAChart.
TeeChart object explorer 3.png
  • Title: See separate chapter on TChartTitle. Similar to TAChart.
  • Tools: property is disabled in TeeChart Standard. Chart tools are an essential part of TAChart.
  • Top: standard VCL/LCL property, the same as with TAChart.
  • TopAxis: See separate chapter on TChartAxis. Parameters for second x axis above the chart. Property missing in TAChart, but can be accessed by AxisList in object tree.
  • Touch: Touch gestures are not supported by Lazarus.
  • UseDockmanger: Docking is not supported by Lazarus.
  • View3D: turns on/off 3D chart. Property missing in TAChart, but 3D effect can be achieved by Depth properties of chart and some series.
  • View3DOptions: See separate chapter.
  • View3DWalls:
  • Visible, With: standard VCL/LCL properties, the same as with TAChart.
  • Zoom: parameters to define the built-in zooming, missing in TAChart, but effect can be achieved by chart tools.

Events

to be written ...

TeeChart's TChartTitle

Public methods

to be written ...

Properties

TeeChartTitle object explorer.png
  • AdjustFrame: from the docs: "The AdjustFrame property controls if Chart Title and Foot frames will be resized to full Chart dimensions or to the title text width. It has only effect when Chart.Title or Chart.Foot.Frame.Visible property is True." Missing in TAChart.
  • Alignment: the same as with TAChart.
  • Bevel, BevelWidth: Defines a bevel around the Title. Missing in TAChart.
  • Brush: Corresponds to the Brush object that is used to fill the shape interior. Usage is a bit confusing, because there is also a separate Color property, and within the Brush there are BackColor and Color properties again. Brush.Style=bsDiagCross uses Title.Brush.Color as background, Title.Color as foreground color. What is Brush.BackColor for?
  • Color: Background color of the title. In TAChart, use Brush.Color.
  • CustomPosition: boolean: if true, title can be positioned by Left and Top properties. Missing in TAChart.
  • Emboss: some kind of upward directed shadow. Missing in TAChart.
  • Font: similar to TAChart
  • Frame: TChartPen: a frame around the title with sub-properties Color, EndStyle, Mode, SmallDots, SmallSpace, Style, Visible, Width. Very similar to TAChart.
  • Gradient: allows to fill the title background with a gradient. Missing in TAChart.
  • Left, Top: Distance of title from chart edge, used if CustomPosition=true. Missing in TAChart.
  • Picture: Background picture for the title. Missing in TAChart.
  • Shadow: Shadow parameters. Missing in TAChart.
  • ShapeStyle = fosEllipse, fosRectangle, fosRoundRectangle: Title shape, like TAChart's Shape with more options.
  • Text: like TAChart
  • TextFormat = (ttfNormal, ttfHTML): Allows HTML formatting in the title. Not available in TAChart.
  • Transparency = 0..100: defines how much of the background is visible through the title (as percentage). Missing in TAChart.
  • Transparent: boolean: if true only the text is visible, all decorating elements are turned off. Missing in TAChart.
  • Visible: show/hides title, like in TAChart.

TeeChart's TChartLegend

Public methods

to be written ...

Properties

to be written ...

TeeChart's TChartAxis

Public methods

to be written ...

Properties

TeeChart TChartAxis properties.png
  • Automatic, AutomaticMaximum, AutomaticMinimum: automatic range finding, or if off, use Maximum and/or Minimum for axis ends. In TAChart, use Extent.
  • Axis: TChartAxisPen: Defines how the axis line is drawn. In TAChart, use AxisPen.
  • AxisValuesFormat: Formatmask for FormatFloat that defines the format of the axis labels (default: #,##0.###). In TAChart, use Marks.Format, default: %0:.9g.
  • DateTimeFormat: Defines how date/time values are formatted. No direct equivalent in TAChart. Effect can be created by TDateTimeChartSource or TListChartSource.
  • EndPosition: defines the percentage position of chart width or height (depending on whether it is applied to a horizontal or a vertical axis) where the axis begin. Left and Top are 0,0 positions. No 1:1 equivalent in TAChart, but effect can be achieved by Range.
  • ExactDateTime: boolean: Useful when placing date/time ticks e.g. at the first of each month such that the tick distance is the number of days per month. Missing in TAChart. Can be achieved with some coding using a TListChartSource.
  • Grid: Parameters to draw the axis grid. TAChart's Grid is equivalent, the subproperty DrawEvery:integer which allows to skip every other grid line is missing, however.
  • GridCentered: boolean: Draws axis grid line between label positions. Missing in TAChart.
  • Horizontal: Boolean: Equivalent to TAChart's Alignment.
  • Increment: Double: Distance between axis labels. If 0 the distance is determined automatically. In TAChart automatic label positioning is controlled by property Intervals.
  • Inverted: boolean: If true> the axis runs into reverse direction. Same as with TAChart.
  • Labels: boolean: turns axis labels on and off. In TAChart: Marks.Visible
  • LabelsAlign: if alDefault labels of vertical axes are aligned towards the axis line (left axis: right-aligned), if alOpposite they are aligned away from the axis line (left axis: left-aligned). Not available in TAChart (or Marks.Alignment ?)
  • LabelsAlternate: if true labels for horizontal are offset vertically, one near axis, the next one a line deeper. No equivalent in TAChart.
  • LabelsAngle: Rotation angle of labels in degrees. Like TAChart's Marks.LabelFont.Orientation which is in tenths of degrees, though.
  • LabelsBehind: ???
  • LabelsExponent: Controls axis labels in exponent format: if true Exponent is in super-script font, else in scientific notation. Not available in TAChart.
  • LabelsFont: Font of labels, like TAChart's Mark.LabelFont which has less subproperties, though.
  • LabelsMultiLine: allows multi-line labels. No direct correspondence in TAChart, but effect can be achieved by event OnMarkToText.
  • LabelsOnAxis: controls if labels just at axis minimum and maximum positions will be shown or not. Not available in TAChart.
  • LabelsSeparation: specifies the percent amount of minimum distance between labels. Zero value causes overlapping labels. Not directly available in TAChart, but effect can be achieved by Intervals settings.
  • LabelsSize: Size occupied by labels, default 0 means automatic calculation. If not correct, axis title may overlap with labels. No equivalent in TAChart, always automatic.
  • LabelsStyle: talAuto, talNone, talPointValue, talText, talValue. Like TAChart's Marks.Style. No correspondence for talAuto, though, which tries to guess the value displayed from the type of axis, e.g. if series has XLabels, then talText will be used.
  • Logarithmic: Enables logarithmic axis scaling. In TAChart no direct correspondence, but effect can be achieved by means of AxisTransformations and Axis.Intervals.
  • LogarithmicBase: Base for logarithmic scaling. In TAChart, property is found in the transformation TLogarithmAxisTransform needed to achiev logarithmic scaling.
  • MaximumOffset, MinimumOffset: pixels that will be left as a margin at axis maximum or minimum positions. In TAChart: TChart.Margins.Right or Margins.Left.
  • MaximumRound, MinimumRound: if axis maximum or minimum is rounded to the next integer. Missing in TAChart.
  • MinorGrid: parameters to define minor grid. In TAChart, use property Minors[n].Grid.
  • MinorTickCount: number of minor ticks between two major ticks. In TAChart, use Intervals property of Minors[n].
  • MinorTickLength: length of minor ticks. In TAChart, the property is Axis.Minors[n].TickLength; there is also a TickInnerLength with TeeChart does not have.
  • MinorTicks: parameter to define minor ticks. In TAChart, use property Minors[n]
  • OtherSide: if true axis is drawn on the opposite side of the chart. In TAChart, change the Alignment of the axis correspondingly.
  • PartnerAxis: seems not to available in TeeChart Standard.
  • PositionPercent: Percentage of chart width or height the axis is moved into the drawing area. In TAChart, use Position and PositionUnits=cuPercent.
  • RoundFirstLabel: Rounds the first label to a "nice" number (default: true). In TAChart, label positioning is determined by Intervals subproperties.
  • StartPosition: Defines the position (as percentage of chart width or height) where the axis line starts
  • TickInnerLength: Like with TAChart
  • TickOnLabelsOnly: From the help file: "... sets the axis ticks and axis grid to be drawn only to coincide at labels. Otherwise they will be drawn at all axis increment positions. When the Axis LabelsSeparation property is greater than 0 (default 10), Axis increases the increment property to avoid Axis Label overlap." Seems not be available in TAChart.
  • Ticks, TicksInner: Determines drawing of the outer and inner ticks (Color, EndStyle, Mode, Style, Visible, Width, etc). In TAChart only TickColor.
  • Title: defines the axis title - see separate chapter. TAChart has the same property but with less sub-properties; the main difference is that TAChart's Visible defaults to false.
  • TitleSize: Distance between Title and chart border (?). 0 --> automatic determination.
  • UsePartnerAxis: no effect in TeeChart Standard. No equivalent in TAChart.
  • Visible: Like in TAChart.
  • ZPosition: Like in TAChart.