【问题标题】:Style individual Labels on Gantt-Rows in a VCL TeeChart在 VCL TeeChart 中为甘特行上的单个标签设置样式
【发布时间】:2021-11-22 17:16:27
【问题描述】:

我在 Delphi XE3 VCL 应用程序中使用 TeeChart(Build 2020.30.200525)。

在那个应用程序中,我正在设置一个甘特系列,我想在左轴上设置一个单独的行标签以将其与其他行分开。

例如更改标签的颜色或字体样式或使用背景突出显示它。

我怎样才能做到这一点?

我找到了OnGetAxisLabel 事件,我可以用它来更改标签的文本。

我也尝试过Axes.Left.Items,但即使我在甘特系列中添加了多个值,它也只有一个元素。

【问题讨论】:

    标签: delphi teechart


    【解决方案1】:

    您需要强制重新绘制图表以填充轴项。即:

    uses VclTee.GanttCh;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Chart1.AddSeries(TGanttSeries).FillSampleValues;
    
      Chart1.Draw; // Force a repaint to populate Axis Items
    
      Chart1.Axes.Left.Items.Automatic:=False;
      Chart1.Axes.Left.Items[2].Format.Font.Color:=clRed;
    end;
    

    【讨论】:

    • 这很有帮助。我不得不将左轴设置为“所有标签可见”,因为我在图表中有太多的甘特图,因此决定创建比系列值更少的 Axis.Items。它是这样工作的,但接下来我将不得不考虑滚动/分页。
    • 您可以重新计算要在 OnZoomOnUndoZoom 事件中显示的标签以适应新的比例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多