我有一个同时包含 TBarSeries 和 TPointSeries 的图表。我希望点与条具有相同的宽度。
我所做的没有结果是:
var S1:TPointSeries; S2:TBarSeries; S1.Pointer.HorizWidth:=S2.BarWidth;
这些点实际上几乎是条形的两倍。
请注意,您必须确保至少绘制了一次图表才能检索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;