由于某些原因,当使用AddGanttColor或AddGantt方法向tgantseries实例添加甘特时,两个不同的调用返回相同的索引。
例如,下面的代码片段说明了最后两个调用都返回值为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也是如此。
嗯…经过一番研究,将问题的原因缩小到财产Series.XValues.Order
的价值。为了保持AddGantt返回的索引值和相应的gantt之间的关联,这个属性应该设置为loNone
。
在我看来,这是一个API缺陷