更改 TDBChart 月份格式显示

Change TDBChart Month format display

我正在使用 TDBChart - 来自 TeeChart Std 来显示一个饼图 SUM 来自我正在使用的数据库中的 PRICE 列的值,它是 排序 Months 上的数据 - 来自 DATE 列在数据库中设置为 datetime type

我的 TDBChart 显示如下:

我的问题:如何让它显示 为 2016 年 10 月和 2016 年 11 月

(最好分别是 10 月 16 日和 11 月 16 日)。

如您所见,它当前显示为数字 - 10-16 和 11-16。

似乎在系列选项中的任何地方都找不到格式选项。

我会在添加点之前将日期时间格式化为字符串,然后将其作为标签传递。即:

uses DateUtils;

procedure TForm1.FormCreate(Sender: TObject);
var tmpDate: TDateTime;
    i: Integer;
begin
  for i:=0 to 1 do
  begin
    tmpDate:=IncMonth(Today,i);
    Series1.AddPie(random*100,FormatDateTime('mmm-yy', tmpDate));
  end;
end;

编辑:

如果您将其填充连接到数据源,则会自动添加标签。然后,我在不修改源代码的情况下看到的唯一选择是使用 OnGetMarkText 事件,如下所示:

procedure TForm1.Series1GetMarkText(Sender: TChartSeries; ValueIndex: Integer;
  var MarkText: string);
var i: Integer;
    m, y: string;
begin
  i:=Pos('-',MarkText);
  m:=Copy(MarkText,1,i-1);
  y:=Copy(MarkText,i+1,Length(MarkText)-i);
  MarkText:=ShortMonthNames[StrToInt(m)] + ' ' + y;
end;