TeeChart For VCL/FMX V2017使用教程:第五章 图例设计

       在您的TeeChart的安装文件夹下的Examples文件夹中,可以看到TeeChart的图例示例,这是本教程中介绍的一些技术的例子。

目录

5.1 图例控制

(1). Style(样式)选项卡

(2). 定位图例

(3). 水平图例中的行数

(4). 颜色盒修改

5.2 在运行时定制图例内容

(1). OnGetLegendRect 事件

(2). OnGetLegendText事件

(3). OnGetLegendText事件

(4).     OnClickLegend 事件


5.1 图例控制

5.1.1 Style(样式)选项卡

        图例参数可通过Chart Editor图表编辑器)、Chart图表)选项卡、Legend图例)页访问。

        关于图例参数的更多信息,参看图例组件的帮助

(1)   Legend  Style(图例样式)

        当图表中只有一个序列时,Legend的默认样式Automatic自动)将会在图例中放置序列点的值。当图表包含多个序列时,Automatic自动)将在图例中添加序列的名称。在编辑器中,使用下拉式组合框来获得除默认值以外的其他值。如果您更改Legend Style图例样式)来显示值,并且在您的图表中有不止一个序列,那么TeeChart Pro将显示第一个序列的值。您可以使用自定义选项修改显示。参看在运行时定制图例内容

Chart1.Legend.LegendStyle := lsLastValues;  //将每个系列的最后一个值放在图例中

(2)   Text Style(文本样式)

        为了获得可能的图例文本样式列表,参看TextStyle属性文本样式格式化了图例中的序列条目 (例如,显示值占总数的百分比,等等)

5.1.2 定位图例 (Position(位置)选项卡选项) 

1 Position(位置)

        使用Position(位置)属性有4个缺省位置,顶部、底部、左和右。右是默认位置。图例的默认位置总是在图表之外。为了解更多关于定位图例的信息,请参阅有关customising Legends定制图例)的章节,

2 Resize Chart(调整图表大小)

        Resize Chart(调整图表大小)属性, 当不启用时,将在图表框区域内绘制图例。这对于一些图例的定位要求来说可能是令人满意的,利用图例的HorizMargin水平边距)和VertMargin垂直边距)属性,可以更好地控制与图表框有关的的图例定位。

3 HorizMargin &VertMargin(水平边距和垂直边距)

        Horizmargin 适用于左和右对齐的图例。VertMargin适用于顶和底对齐的图例。改变Horizmargin水平边距)属性值将会移动与图例相关的图表框,反过来不成立。因此,使一个Horizmargin值为负将会把图表移到图例上(增加图表矩形区域的大小)。然而,这些属性并不是为了重新定位图表上的图例,为了达到这个目标,最好使用在运行时定制图例内容概述的技术

4 Custom position(定制位置)

        将图例Custom:(定制)属性设置为true,然后将图例的Top(顶部)和Left(左侧)像素坐标设置为自定义位置。可选择Percent(百分比)选项,变为百分比。

示例:

With Chart1.Legend do
  Begin
    CustomPosition:=True;
    Top:=100;
    Left:=100;
  end;

5.1.3 水平图例中的行数

        当图例是水平对齐的(顶部或底部)时,可以指定行数: Chart1.Legend.MaxNumRows:=3;

        在默认情况下,MaxNumRows0(zero),这意味着这个图例将显示所有的值,并使用尽可能多的行。

5.1.4 颜色盒修改【编辑器Symbols(符号)选项卡】

    在图例中使用Colorwidth属性设置颜色盒的宽度。

    示例     

With Chart1.Legend do
  Begin
    //将颜色框移到值列表的右边
    Symbol.Position:=spRight;
    //将盒子设置为连续的
    Symbol.Continuous:=True;
    //设置盒子的宽
    Colorwidth:=40;
  end;
  //Hide the Pen of the line between the boxes把行的铅笔隐藏在盒子之间
  //这一行取决于序列本身 【这是一个Line Series(行序列)】
Series1.LinePen.Visible:=False;

5.2 在运行时定制图例内容

        图例事件提供了完全控制图例的外观和内容的选项

5.2.1 OnGetLegendRect事件

        图例外矩形,允许改变图例盒的整体大小和位置。结合OnGetLegendPos一起使用,重新定位图表的图例和内容。

        例如,您可以使用CustomPosition来更完美地实现以下步骤(参见上面的部分)                  

procedure TForm1.Chart1GetLegendRect(Sender: TCustomChart; var Rect: TRect);
begin
//这就把图例盒移到了左边(保留了它们的内容!)
//设置Chart1.Legend.ResizeChart := False; 为了禁止调整图表大小
//因此,将图例放在图表矩形中
Rect.Left := Rect.Left - 100;
Rect.Right := Rect.Right - 100;
end;

5.2.2 OnGetLegendPos 事件

        修改图例内容的位置。下面的示例可以使用上面的代码将图例内容移动到新的图例矩形中。

procedure TForm1.Chart1GetLegendPos(Sender: TCustomChart; Index: Integer;
var X, Y, XColor: Integer);
begin
//将图例内容向左移动100个像素,使用OnGetLegendRect
//不要移动颜色盒
X := X - 100;
end;

5.2.3 OnGetLegendText 事件

        修改图例内容的文本。

procedure TForm1.Chart1GetLegendText(Sender: TCustomAxisPanel;
  LegendStyle: TLegendStyle; Index: Integer; var LegendText: String);
begin
  //修改图例文本
  LegendText := LegendText + IntToStr(Index);
end;
        当将图例放置在图表矩形区域内时,请记住,图例是在序列和轴之前绘制的,并将出现在任何交叉点的下面。

5.2.4 OnClickLegend 事件

        当在图例上点击时,获得一个图例项。

procedure TForm1.Chart1ClickLegend(Sender: TCustomChart;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Var tmp:Integer;
begin
  tmp:=Chart1.Legend.Clicked( x,y ) ;
  if tmp<>-1 then 
     ShowMessage( 'Clicked legend item: '+ Chart1.FormattedLegend( tmp ) );
end;

第五章



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值