if peLineGraph.Legend.FirstValue = 0 then
begin
peLineGraph.Legend.FirstValue := peLineGraph.Legend.Items.Count;
btnShowMoreSeries.Caption := SHOW_FIRST_SERIES;
end
else begin
peLineGraph.Legend.FirstValue := 0;
btnShowMoreSeries.Caption := SHOW_NEXT_SERIES;
end;
if btnShowMoreSeries.Visible = False then
begin
if (Sender as TChart).SeriesCount > (Sender as TChart).Legend.Items.Count then
begin
btnShowMoreSeries.Caption := SHOW_NEXT_SERIES;
btnShowMoreSeries.Visible := True;
end;
end;
btnShowMoreSeries.Left := (Sender as TChart).Legend.Left;
2条答案
按热度按时间w8f9ii691#
我不确定答案是否属实,因为Steema有时会将运行时和设计时混为一谈,并将其中一个保存到另一个中。我的信息源发生了一些变化,现在它对我起作用了。最有可能的解决方案是:
所有这样的暗示在理论上都可能奏效:
DBChart1.Legend.Items.Capacity:=100;
DBChart1.Legend.MaxNumRow:=100;
DBChar1.Legend.NumRow:=100;
但是,一切都被自动的图例覆盖了。因此,必须做的第一件事是:将其设置为自定义!您可以这样做:
DBChart1.Legend.Items.Custom:=true;
我在Steema的文档中找到了解决方案:
http://www.teechart.net/docs/teechart/net/lib/index2.htm
q9rjltbz2#
我找到了图例位于左/右位置时的解决方案。Legend具有FirstValue属性。因此您可以实现一种多页图例。您可以为onClick事件添加一个按钮并添加以下代码:
其中peLineGraph是TChart,btnShowMoreSeries是图表上的新按钮。我的代码是针对图例中只有两页的情况。但如果需要,您也可以实现更多页面。
当然,您不希望每次都在那里显示btnShowMoreSeries按钮。只有当实际系列的数量超过图例中适合的数量时,您才需要它。您可以轻松地签入peLineGraphAfterDraw事件。您还可以在此处调整按钮的左侧位置:
最初,btnShowMoreSeries.Visible可以为False。并且每次生成新图表时都需要将其设置为FALSE。