【问题标题】:Teechart :How to move a visible series mark by code?Techart:如何通过代码移动可见的系列标记?
【发布时间】:2015-06-02 14:30:03
【问题描述】:

在名为serie1TLineSeries 与父图表cht1 中,我有可见标记,我试图通过代码移动一个标记。我的问题是,当我尝试将标记位置的自定义属性设置为 true 时,出现“访问冲突”异常。但是,如果我拖动标记(TDragMarksTool 连接到图表并处于活动状态)它会移动。之后,“自定义”位置为真,我可以通过代码移动标记。

这在一个按钮的点击事件中。

serie1.Marks[10].Visible:=True;
serie1.Marks.Positions.Position[10].Custom:=true; <<< Exception here.

我使用的是 Delphi XE4 和 Teechart 2014,我的笔记本电脑没有在这里查看确切的版本号。

【问题讨论】:

  • 调用Invalidate 而不是Draw 来强制重绘。至于你的例外,我们如何评论?有什么例外?要精确。不要让我们猜测。我猜serie1.Marks.Positions.Position[10] 超出了界限,但为什么我们需要猜测。
  • 感谢您的评论,大卫。但这并不能解决主要问题;我在 Draw 调用之前得到了异常。
  • 如果你能提出一个更好的问题并完整再现问题,那将是真正有帮助的。正如我上面所说,当我们不得不猜测时,这很困难。

标签: delphi teechart delphi-xe4


【解决方案1】:

在完全绘制图表之前不会初始化某些属性。
在访问 serie1.Marks.Positions.Position 数组之前尝试强制重绘图表调用 cht1.Draw;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多