Delphi 7 在 运行 时间创建 tChart 条形金字塔/圆柱
Delphi 7 creating tChart Bar Pyramids / Cylinders at run-time
我知道 - Delphi 7 是史前的,tChart 不是最好的。但我必须使用它们,所以...
我可以在 运行 时使用
更改系列的类型
var cs: tChartSeries;
begin
cs := chart.Series[0];
ChangeSeriesType(cs, TBarSeries);
end;
我发现了其中的大部分:tLineSeries、tBarSeries、tAreaSeries、tPointSeries,...
不幸的是,我找不到如何将其设置为 Bar/Pyramids 和 Bar/Cylinders。
如果我尝试在 运行 时创建它们,我看到向导将它们称为 "Style",但如果我尝试
chart.series[0].Style := …
属性(tChartSeriesStyles 类型)指的是不同的事物。仅供将来参考,因为很难找到:
TChartSeriesStyle = set of ( tssIsTemplate,
tssDenyChangeType,
tssDenyDelete,
tssDenyClone,
tssIsPersistent,
tssHideDataSource );
所以,问题是:如何在 运行 时将 Delphi 7 tChart 系列更改为 "pyramid" 和 "cylinder"?
谢谢
在 Delphi 10.3 中,在 IDE 中手动设置金字塔样式的条形图,并在文本中查看 DFM,得到如下部分:
object Chart1: TChart
Left = 224
Top = 136
Width = 400
Height = 250
Title.Text.Strings = (
'TChart')
TabOrder = 0
DefaultCanvas = 'TGDIPlusCanvas'
ColorPaletteIndex = 13
object Series2: TBarSeries
BarStyle = bsPyramid
XValues.Name = 'X'
XValues.Order = loAscending
YValues.Name = 'Bar'
YValues.Order = loNone
end
end
可以尝试在 Delphi 7 中做同样的事情,看看哪些属性被设置为哪些值。
在 Delphi 10.3 中,代码最终如下(假设 Series2 是 TBarSeries):
Series2.BarStyle := bsPyramid;
您需要 "cast" 将该系列转换为 tBarSeries,然后您可以更改值。
示例:
(c.series[0] as tBarSeries).BarStyle := bsPyramid;
(c.series[1] as tBarSeries).BarStyle := bsCilinder;
因为它看起来没有在任何地方记录,只需键入 "bs" 并按 CTRL-SPACE 即可查看所有可能的值。
我知道 - Delphi 7 是史前的,tChart 不是最好的。但我必须使用它们,所以...
我可以在 运行 时使用
更改系列的类型var cs: tChartSeries;
begin
cs := chart.Series[0];
ChangeSeriesType(cs, TBarSeries);
end;
我发现了其中的大部分:tLineSeries、tBarSeries、tAreaSeries、tPointSeries,...
不幸的是,我找不到如何将其设置为 Bar/Pyramids 和 Bar/Cylinders。 如果我尝试在 运行 时创建它们,我看到向导将它们称为 "Style",但如果我尝试
chart.series[0].Style := …
属性(tChartSeriesStyles 类型)指的是不同的事物。仅供将来参考,因为很难找到:
TChartSeriesStyle = set of ( tssIsTemplate,
tssDenyChangeType,
tssDenyDelete,
tssDenyClone,
tssIsPersistent,
tssHideDataSource );
所以,问题是:如何在 运行 时将 Delphi 7 tChart 系列更改为 "pyramid" 和 "cylinder"?
谢谢
在 Delphi 10.3 中,在 IDE 中手动设置金字塔样式的条形图,并在文本中查看 DFM,得到如下部分:
object Chart1: TChart
Left = 224
Top = 136
Width = 400
Height = 250
Title.Text.Strings = (
'TChart')
TabOrder = 0
DefaultCanvas = 'TGDIPlusCanvas'
ColorPaletteIndex = 13
object Series2: TBarSeries
BarStyle = bsPyramid
XValues.Name = 'X'
XValues.Order = loAscending
YValues.Name = 'Bar'
YValues.Order = loNone
end
end
可以尝试在 Delphi 7 中做同样的事情,看看哪些属性被设置为哪些值。
在 Delphi 10.3 中,代码最终如下(假设 Series2 是 TBarSeries):
Series2.BarStyle := bsPyramid;
您需要 "cast" 将该系列转换为 tBarSeries,然后您可以更改值。 示例:
(c.series[0] as tBarSeries).BarStyle := bsPyramid;
(c.series[1] as tBarSeries).BarStyle := bsCilinder;
因为它看起来没有在任何地方记录,只需键入 "bs" 并按 CTRL-SPACE 即可查看所有可能的值。