Delphi 7在运行时创建tChart条形金字塔/圆柱体

时间:2018-12-22 14:12:11

标签: delphi teechart

我知道-Delphi 7是史前史,而tChart并不是最好的。但是我必须使用它们,所以...

我可以在运行时更改系列的类型

var cs: tChartSeries;
begin
  cs := chart.Series[0];
  ChangeSeriesType(cs, TBarSeries);
end;

我发现了其中的大多数:tLineSeries,tBarSeries,tAreaSeries,tPointSeries,...

不幸的是,我找不到如何将其设置为“条形/金字塔”和“条形/圆柱”。 如果我尝试在运行时创建它们,则会看到向导将其称为“样式”,但是如果我尝试

chart.series[0].Style := …

该属性(类型为tChartSeriesStyles)引用了不同的事物。仅供以后参考,因为很难找到:

TChartSeriesStyle = set of ( tssIsTemplate, 
                             tssDenyChangeType, 
                             tssDenyDelete, 
                             tssDenyClone, 
                             tssIsPersistent, 
                             tssHideDataSource ); 

所以,问题是:如何在运行时将Delphi 7 tChart系列更改为“金字塔”和“圆柱体”?

谢谢

2 个答案:

答案 0 :(得分:1)

在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;

答案 1 :(得分:0)

您需要将该序列“广播”到tBarSeries,然后可以更改该值。 示例:

(c.series[0] as tBarSeries).BarStyle := bsPyramid;
(c.series[1] as tBarSeries).BarStyle := bsCilinder;

由于它看起来好像没有记录在任何地方,因此只需键入“ bs”,然后按CTRL-SPACE查看所有可能的值。

相关问题