【问题标题】:TeeChart. Draw grid lines on the top of Gantt seriesTeeChart。在甘特系列的顶部绘制网格线
【发布时间】:2021-06-08 15:39:22
【问题描述】:

我正在使用甘特系列在图表上显示区域。问题是该系列绘制在图表网格的顶部。

我希望在网格顶部绘制法线系列,并在其后面绘制甘特系列。没有 OnAfterDraw,是否可以使用标准 TChart 功能?

【问题讨论】:

    标签: delphi-xe5 teechart gantt-chart


    【解决方案1】:

    您可以在OnBeforeDrawAxes 处绘制TGanttSeries,然后在OnBeforeDrawSeries 处隐藏它,最后在OnAfterDraw 处再次使其可见,以便下一个绘制周期:

    type
      TForm1 = class(TForm)
        Chart1: TChart;
        Series1: TGanttSeries;
        Series2: TLineSeries;
        procedure FormCreate(Sender: TObject);
        procedure Chart1BeforeDrawAxes(Sender: TObject);
        procedure Chart1BeforeDrawSeries(Sender: TObject);
        procedure Chart1AfterDraw(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    type TCustomSeriesAccess=class(TCustomSeries);
    
    procedure TForm1.Chart1BeforeDrawAxes(Sender: TObject);
    begin
      TCustomSeriesAccess(Series1).DrawAllValues;
    end;
    
    procedure TForm1.Chart1BeforeDrawSeries(Sender: TObject);
    begin
      Series1.Visible:=False;
    end;
    
    procedure TForm1.Chart1AfterDraw(Sender: TObject);
    begin
      Series1.Visible:=True;
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Chart1.Draw;
    end;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      相关资源
      最近更新 更多