【问题标题】:Why AddGantt or AddGanttColor returns the same index for different invocations?为什么 AddGantt 或 AddGanttColor 为不同的调用返回相同的索引?
【发布时间】:2013-05-29 13:46:45
【问题描述】:

由于某些原因,在使用 AddGanttColor 或 AddGantt 方法将甘特图添加到 TGanttSeries 实例时,两个不同的调用会返回相同的索引。

例如,下面的 sn-p 说明了最后两个调用都返回值为 1 的索引的情况。

Series.AddGanttColor(0, 100, 0, 'WA #234', clGreen);   // returns value 0
Series.AddGanttColor(100, 200, 1, 'WA #235', clGreen); // returns value 1 
Series.AddGanttColor(50, 200, 2, 'WA #237', clGreen);  // returns value 1!

但是,会显示所有三个甘特图。因此,似乎第三行将甘特图添加为列表中的第二个,并将第二行添加的甘特图移动到最后一个(第三个,索引为 2)。

谁能解释一下如何解决这个问题,以确保返回的索引根据 AddGanttColor 调用与甘特图保持关联。在上面的示例中,我希望索引值 0、1 和 2 分别与第一个、第二个和第三个添加的甘特图相关联。


刚刚确认这种情况适用于在 Delphi 5 下运行的 TeeChart 版本 5 和 8。

【问题讨论】:

    标签: delphi teechart delphi-5


    【解决方案1】:

    嗯...经过一些研究,问题的原因被缩小到属性Series.XValues.Order 的值。此属性应设置为 loNone 以保持从 AddGantt 返回的索引值与相应甘特图之间的关联。

    IMO 这是一个 API 缺陷。

    【讨论】:

    • 这是因为大多数系列样式旨在绘制顺序数据。如果不是这种情况,您可以轻松更改它。
    • @NarcísCalvet 我花了一段时间才弄明白。默认情况下,TGanttSeries 将 XValues.Order 设置为 loAscending。通过“顺序”,我个人希望添加甘特图的顺序。否则从 AddXXX 方法返回的索引值真的很容易误导和出错。
    猜你喜欢
    • 2017-05-22
    • 2019-07-12
    • 2021-04-29
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多