0

我有一个同时包含 TBarSeries 和 TPointSeries 的图表。我希望点与条具有相同的宽度。

我所做的没有结果是:

var S1:TPointSeries;
    S2:TBarSeries;
S1.Pointer.HorizWidth:=S2.BarWidth;

这些点实际上几乎是条形的两倍。

4

1 回答 1

2

请注意,您必须确保至少绘制了一次图表才能检索TBarSeries BarWidth. 使用TChart'Draw()函数强制重新绘制图表,然后您可以安全地检索BarWidth.

还要注意TPointSeries Pointer宽度是HorizSize*2。HorizSize 是从点的中心到指针左右两侧的长度。

这是我通过以下代码得到的结果:

点和酒吧

uses Series;

procedure TForm1.FormCreate(Sender: TObject);
var S1:TPointSeries;
    S2:TBarSeries;
begin
  Chart1.View3D:=false;

  S2:=Chart1.AddSeries(TBarSeries) as TBarSeries;
  S1:=Chart1.AddSeries(TPointSeries) as TPointSeries;

  S2.Marks.Visible:=false;

  S1.FillSampleValues(6);
  S2.FillSampleValues(6);

  Chart1.Draw;
  S1.Pointer.HorizSize:=S2.BarWidth div 2;
end;
于 2013-08-09T15:04:35.517 回答