本技术文档描述了 v2023.38.230607 版本对 TeeChart 组件库(FireMonkey 和 VCL 版本)所做的所有更改。
支持的 IDE
已支持所有开发环境(RAD Studio、Delphi 和 C++ Builder)
新系列类型
新坡度系列(包含在 TeeChart Pro 中)。
TSlopeSeries将多条线排序并绘制成一个系列。点的垂直顺序基于它们在每个水平坐标上的排名。

方形地图(包含在 TeeChart Pro 中)。
TSquarifiedMapSeries将分层数据显示为矩形内的矩形,尝试使用标准算法计算尽可能更方形的矩形,与其值成比例。

新功能
KDE(核密度估计,包含在 TeeChart Pro 中)。
TKDEFunction已经被小提琴系列使用,现在已经被重构和发布,因此它可以在小提琴系列之外使用。TeeKDEEdit.pas 单元是用于在设计和运行时编辑其属性的表单。
PPO(百分比价格振荡器,包含在 TeeChart Pro 中)。
新工具
图表布局(包含在 TeeChart Pro 中)。
提供一种在图表内创建图表网格的方法。派生自SubChart工具类,并包含用于配置网格的行和列属性。单元格大小可以以像素为单位或以总可用空间的百分比来指定。

补充内容
新的TSelfStack Percent布尔属性(默认False)。
由条形图和水平条形图系列使用,将所有堆积的条形绘制为绝对值或 0% 到 100% 的百分比。
BarSeries1.MultiBar := mbSelfStack;
BarSeries1.SelfStack.Percent := True;
TTeePicture AngleSingle 类型的新属性(默认为零0)。
由新的 Canvas StretchRotate 方法用于在各处绘制旋转图片。
TCustomTrendFunction Coefficient没有第一个和最后一个参数的重载方法(它使用 Source 系列范围)。
TCustomTrendFunction TTrendFloat类型(默认为Double)。
当需要更高的精度时,可以将其更改为扩展(32 位)。
TCustomSeries基类已被重构,从中派生出一个新类:TCustomStackSeries.
新TSlopeSeries类直接派生自TCustomSeries,而现有的TLineSeries、TPointSeries等TAreaSeries现在派生自TCustomStackSeries。
新TCustomLineSeries基类,现在是TCustomSeries和TFastLineSeries的祖先类。
新TChartAxis AxisRect函数,返回与绘制轴及其标签的区域相对应的矩形(以像素为单位)。
新TChartSeries AxisRect函数,返回与水平轴和垂直轴相关的系列的边界矩形(以像素为单位)。
新TOscillatorFunction基类、TPVOFunction新TPPOFunction类的祖先。
新TChartSeries FormatValue方法,快捷方式:
FormatFloat(Series1.ValueFormat, Value)
和FormatPercent,快捷方式:
FormatFloat(Series1.PercentFormat, Value)
图表库可以更改列数(或零,用于自动布局)
三元系列现在派生自新的基类,TCustomPointer3DSeries而不是直接派生自TPoint3DSeries.
这会优化三元无法使用的代码和属性。
新SaveChartToString方法LoadChartFromString,将图表转换为文本表示(默认文本格式 dfm)。
TMapSeries现在可以TWorldSeries在设计和运行时保留其数据值。
等待实施版本控制机制,以支持未来对地图的修改(添加或删除国家或省份等)同步到存储的数据。
新的 SubChart 工具Clear方法,删除所有子图表
画布
TeeChart 控件的默认画布类现在是 GDI+ 而不是 GDI。
该TeeGDIPlus单位不再自动添加到uses具有 TeeChart 控件(TChart、TDBChart、TTree等)的表单子句TChart中,因为默认情况下已隐式使用该单位TDBChart。
新的 Skia Canvas,在新的 TeeSkia.pas 单元进行实验,使用Skia4Delphi项目。
新TTeeCanvas类StretchRotate 方法,用于在旋转矩形参数内 StretchRotate绘制图形图像 (TGraphic)。
它由多个类使用:TSeriesPointer、TImageBar、TImagePoint和TChartImageTool。TWorldSeries DrawFlag注意:尚不适用于旧的 GDI 画布。
TTeeCanvas Font现在可以通过内部调用AssignFont方法来设置属性,例如:
Chart1.Canvas.Font := Chart2.Title.Font;
新的TTeeCanvas BeginBlending重载方法,使用TPointArray参数而不是TRect矩形。
新的全局 TeCanvas.pasRotatePoints重载函数。
它们返回从数组质心点以给定角度旋转的点数组的副本。
直接使用类在 GDI+ 画布中更快地显示图像TGPImage。
PDF 画布的更改可生成多页文档。TeeNew.dpr 演示中的新示例。
新单元
TCustPointEdit.pas 一个新的表单作为编辑器的基础TCustomSeries。
TeeSkia.pas 用于 TeeChart VCL 的新 Skia 画布。
TeeSlopeSeries.pas 带有新 TSlopeSeries 的新单元。
TeeSquarifiedMap.pas 和 TeeSquarifiedMapEditor.pas
更名
TArrowSeries。
Fill2D 属性已重命名为 Filled,它可以在 2D 和 3D 模式下使用,而不仅仅是 2D。
THighLowSeries。
Polygons 属性的类型已从 重命名TTeeHighLowPolygon为THighLowPolygons。Polygons 属性也已从已发布的类部分移至公共类部分,因为它是无法存储的只读属性,并且无法在 IDE 对象检查器中使用。
TView3DOptions Parent属性类型已更改,从TControl更改为TComponent。
这是消除 VCL / FMX Control 对 TeeChart Canvas 单元依赖的计划的第一阶段。如果需要,它仍然可以进行类型转换:
(Chart1.View3Doptions.Parent as TWinControl)....
过时/不推荐使用的方法
几个全局方法(主要是内部使用的)已移至其所属的类中:
TeCanvas.pas EditColor ➡ TButtonColor.Edit
TeeBrushDlg.pas EditChartBrush ➡ TBrushDialog.Edit
TeePenDlg.pas EditChartPen ➡ TPenDialog.Edit
EditTeePicture ➡ TBackImageEditor.Edit
EditTeeFont ➡ TTeeFontEditor.Edit
EditTeeGradient ➡ TTeeGradientEditor.Edit
EditTeeCustomShape ➡ TFormTeeShape.Edit
TeCanvas.pas ClipCanvas ➡ TTeeCanvas.Clip
TeCanvas.pas UnClipCanvas ➡ TTeeCanvas.UnClip
InsertTeeObjectForm ➡ TFormTeeShape.InsertObjectForm
AddFormTo ➡ TTeeVCL.AddFormTo
TeeCreateForm ➡ TTeeVCL.CreateForm
PositionToCenter ➡ TTeeVCL.PositionToCenter
FileSizeToStr ➡ TTeeVCL.FileSizeToStr
TeeScaleForm ➡ TTeeVCL.ScaleForm
TeeSelectFolder ➡ TTeeVCL.SelectFolder
ShowFiltersEditor ➡ TFiltersEditor.ShowEditor
TeeAddAxes ➡ TFormTeeAxis.AddAxes
GetTeeBrush ➡ TBrushDialog.GetTeeBrush
TeeEditSeriesTextSource ➡ TSeriesTextEditor.Edit
TeeEditStrings ➡ TStringsEditor.Edit
Chart.pas 全局TeeAntiAliasCanvas变量不再使用,并将在未来版本中删除。默认的 GDI+ 画布已经为边缘像素提供了抗锯齿支持。
TeeAntiAlias.pas 单元将在未来版本中删除。
已删除
适用于 Delphi 4、5、6、7 CLX (Kylix) 和 C++ Builder 4、5、6 的所有软件包。
源代码中对 Delphi 4、5、6 的支持已被删除。
TChartSeries Visuals属性和所有相关代码已被删除。它是实验性的,仅在(现已弃用)3D“TeeMaker”项目中使用。
TeeVisualsEditor.pas 单元已被删除。
TCanvas3D.BeginEntity方法“Visual”参数已被删除。
TeeActivityDonut.pas 单元已被删除(不再需要),因为TActivityGauge系列已被重构并且不再用于TDonutSeries绘制其值。
TeCanvas.pas Global Clipxxx 函数在许多版本之前已被弃用,现在已被删除。请使用 TTeeCanvas.Clipxxx 等效方法。
删除了 TChartValueList 类中过时的条件定义TEEARRAY及其TEEMULTIPLIER关联代码。
删除了TAxisLabels GridIgnoresLabelSize和TChartAxis LabelsGridIgnoreLabelsSize属性,它们由 EquiVolume 系列使用,并且由于该系列中的重构而不再需要。
TChartAxis XPosValue删除了和 处的汇编代码YPosValue,因为与等效的 Pascal 代码相比,速度增益不再值得。
其他
所有源代码文件中的换行符均已标准化为 CRLF。
所有源代码文件中的 Tab #9 字符均已替换为空格。
Chart.pas 单元的新内部GetNewToolName函数返回新工具的未使用名称。
如有可能,多个var参数已转换为“out”。
在首次使用之前,一些inline方法已在单元中向上移动。
表单中三个缺失的字段已恢复(感谢 DFMCheck 工具)。
修复错误
TCustomSeries OnGetPointerStyle该事件现在是公开的而不是发布的,并且它发布在所有源自该事件的系列中。
TChartSeries HoverElement财产现在是公开的而不是出版的,并且它在所有衍生自它的系列中出版。
Chart.pas 全局CloneChart函数现在ClearChart在克隆之前调用以完全初始化目标图表。
有几个类的方法中缺少属性Assign。Assign当克隆图表或系列、工具等时,以及在图表编辑器对话框中复制它们时,会调用该方法。
某些类在使用方法时未正确地将其属性流式传输到 dfm / fmx 表单或自定义流中SaveChart。
添加了不必要时流式传输到 dfm / fmx 的属性的默认值。
使用 GDI+ 画布时与多线程相关的多个修复,支持使用线程并行创建多个图表、并行绘制位图等。
渝公网安备50010702505508