TeeChart如何强制Mark的行为与指针相同?

时间:2017-11-24 16:33:00

标签: delphi teechart delphi-10.1-berlin

Delphi 10.1,Windows 10 Pro x64,TeeChart pro 2017.20。 对于有很多点(1471点)的LineSeries图表,我想展示一个选择性的Mark,在代码中定义。 只有当我足够放大窗口时才能看到标记。 在某些情况下,通过一些部分缩放,用鼠标拖动(PAN)图表时会显示和隐藏标记(参见图片)。 Visible Mark Un visible mark, same resolution as previous, just moved (PAN)

另一方面,指针的行为完全符合我的要求。我总能在蚂蚁变焦上看到它。 这是一个用Marks和Pointers进行演示的简短代码:

procedure TForm1.FormCreate(Sender: TObject);
var
  Series: tLineSeries;
  i: integer;
begin
  // Chart settings
  Chart1.Align  := alClient;
  Chart1.View3D := false;

  // LineSeries definition
  Series:=Chart1.AddSeries(TLineSeries.Create(Self)) as tLineSeries;
  Series.FillSampleValues(1471);

  // Marks
  Series.Marks.Visible := true; // Global flag
  //Series.Marks.AutoPosition := false;
  //Series.Marks.Automatic.Move:= false;
  for i := 0 to Series.Count-1 do
    Series.Marks[i].Visible := false;
  Series.Marks[506].Visible := true;

  // Pointers
  Series.Pointer.Visible := true;  // Global flag
  for i := 0 to Series.Count-1 do
    Series.Pointer[i].Visible := false;
  Series.Pointer[506].Visible := true;
end;

如何强制Mark的行为与指针相同?

1 个答案:

答案 0 :(得分:0)

当有更多标记时,TeeChart会计算最小的“全部绘制”步骤 显示比可用像素。此优化会干扰您的设置 尝试将其设置为跳过此优化:

Series.CalcVisiblePoints:=False;