Tchart,缩放时的奇怪绘图

时间:2017-09-11 18:35:18

标签: teechart delphi-5

所以我有一个很好的传统Delphi 5项目,在日期时间bottomaxis上有一个垂直条形图。它工作得非常好。 现在我想添加最多三个水平“警告”线,每条线最多有三个可切换标签。这个想法是显示三条红色限制线(三个3元素的lineseries),以及最左边,中间和最右边的标签显示Yvalue限制。标签可以切换,以免混乱数据。它也有效。即使在滚动时,这些标签也必须位于xmin,mid和xmax。我在重新绘制第一个数据集时启动计时器,然后使用图表的新xmin,mid,xmax重置三个标签系列,解决了这个问题。滚动时,标签会跟随。 但是当我放大时,会丢失一些东西。我在状态栏中打印xmin,xmax和行坐标,因为它被重新计算(用于调试),它看起来很正确,但是三条水平线向左滑动。最左边的点不在视线范围内,最左边的点向左漂移,随着变焦的增加而变得更糟。 Yvalues是正确的。

是否有最好的方法来对plotdata进行plot-eventdriven重新计算? (或者我必须在XE10.2中重建所有内容吗?)

1 个答案:

答案 0 :(得分:0)

我刚在家里跑过,XE10.2中也出现了同样的现象。当我放大时,第二个系列(水平线,重新计算到图形边缘的端点)向侧面爬行。 但是如果我将series2连接到Topaxis ,那么一切都很好。坚如磐石。看起来像是一件很自然的事情。傻我。

procedure TForm1.Series1AfterDrawValues(Sender: TObject); 
var a,b :Double; 
begin 
a:=(Chart1.LeftAxis.Minimum+chart1.leftAxis.maximum)/2; 
b:=chart1.TopAxis.Minimum; 
series2.Clear; 
series2.addxy(b,a,'Left'); 
series2.addxy(b+(chart1.topAxis.Maximum-b)/2,a,'Mid');
series2.addxy(chart1.topAxis.Maximum,a,'Right'); 
end;

Running,line stays put when scrolling