使用Delphi的TCHART - 不能有条形图显示金额和文字说明

时间:2017-01-10 00:44:32

标签: delphi teechart

我有一个德尔福柏林程序显示条形图,我想在每个条形图上方显示一个标签显示数值,另一个标签下方的标签显示描述,如一周中的某一天。如果我使用2个按钮,显示其中一个,我可以得到两个,但有没有办法在条形图上显示2个标签,一个在条形图上方,一个在下方?在此程序中,button2显示上方的标签和下方的轴,但它为每个条显示两次相同的信息。

我试图在之前的帖子中提出这个问题,但是在回复中没有足够的空间来添加足够的细节。

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;

2 个答案:

答案 0 :(得分:1)

默认情况下,系列标记设置为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;

desired result

答案 1 :(得分:0)

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

相关问题