Delphi 的 TCHART - 不能显示数量和文本描述

TCHART with Delphi - cannot have bar show amount and a text description

我有一个显示条形图的 Delphi 柏林程序,我希望每个条形图上方的标签显示数值,条形图下方的另一个标签显示描述,例如星期几。如果我使用 2 个按钮,显示一个或另一个,我可以同时获得这两个按钮,但是有没有办法在条形图上显示 2 个标签,一个在条形图上方,一个在下方?在此程序中,button2 在上方显示一个标签,在下方显示一个轴,但它为每个栏显示两次相同的信息。

我试图在之前的 post 中提出这个问题,但回复中 space 不足以添加足够的详细信息。

procedure TForm1.Button1Click(Sender: TObject);
var
    i : integer;
begin   
    chart1.series[0].clear;
        for i := 1 to 4  do
             chart1.series[0].add(100+5*i,'',clred);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
    i : integer;
begin
    chart1.series[0].clear;
    day[1] := 'Sun';
    day[2] := 'Mon';
    day[3] := 'Tues';
    day[4] := 'Wed';
    for i := 1 to 4  do
        chart1.series[0].add(100+5*i,day[i],clred);
end;

默认设置系列标记为smsLabelOrValue,轴标签样式设置为talAuto;这将显示点标签(如果存在)或点值(如果该点没有标签)。

要更改该行为,您可以更改这些属性:

  • 系列标记样式:

    Chart1.Series[0].Marks.Style:=smsValue;
    

    可能的值:

    smsValue,             { 1234 }
    smsPercent,           { 12 % }
    smsLabel,             { Cars } // If label is empty, no mark will be displayed
    smsLabelPercent,      { Cars 12 % }
    smsLabelValue,        { Cars 1234 }
    smsLegend,            { (Legend.Style) }
    smsPercentTotal,      { 12 % of 1234 }
    smsLabelPercentTotal, { Cars 12 % of 1234 }
    smsXValue,            { 1..2..3.. or 21/6/2014 }
    smsXY,                { 123 456 }
    smsSeriesTitle,       { Series1 }
    smsPointIndex,        { 1..2..3... }
    smsPercentRelative,   { 100%..90%..120%... }
    smsLabelPercentValue, { Cars 12 % 1234 }
    smsLabelOrValue
    
  • 轴标签样式:

    Chart1.Axes.Bottom.LabelStyle:=talValue; //talAuto, talNone, talValue, talMark, talText, talPointValue
    

在您的情况下,将此添加到 Button2Click 中的代码会得到所需的结果:

Chart1.Series[0].Marks.Style:=smsValue;

Yeray 的回答就是解决方案。此处重复:Chart1.Series[0].Marks.Style:=smsValue;