【问题标题】:TeeChart How to force a Mark to behave the same as a Pointer?TeeChart 如何强制标记的行为与指针相同?
【发布时间】:2017-11-27 18:10:42
【问题描述】:

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

另一方面,指针的行为完全符合我的要求。我总是可以在 ant zoom 上看到它。 这是一个带有标记和指针的简短代码用于演示:

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;

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

【问题讨论】:

  • 无法使用 v2016.17.160129 进行复制。我的意思是,当指针离开视图时,此版本中带有上述代码的标记会消失。
  • 谢谢 Victoria,是用 Delphi 吗?如果是,是哪个版本?我认为 2016.17 不适合 10.1
  • 是的,来自东京。

标签: delphi teechart delphi-10.1-berlin


【解决方案1】:

TeeChart 计算最小的“Draw Every”步骤,当有更多标记时 显示比可用像素。此优化会干扰您的设置。
尝试设置此项以跳过此优化:

Series.CalcVisiblePoints:=False;

【讨论】:

  • 谢谢 Yeray,就是这样。这可能是一个新功能,因为 Victoria 报告在 v2016.17 上没有问题。
  • CalcVisiblePoints 早在很早以前就存在了,但自从 v2016.19 引入以来,它被用来控制这种“Draw Every”优化
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多