TeeChart Pro VCL/FMX教程(五):图例设计

有关TeeChart安装文件夹下方示例文件夹中的TeeChart编码的Legend示例,请参阅本教程中概述的某些技术的工作示例。

下载TeeChart Pro VCL/FMX最新版本

    已加入在线订购,现在抢购可立享特别优惠!!!

图例控件

样式选项卡

    可以通过图表编辑器,图表选项卡,图例页面访问图例参数。

Teechart
图例样式

    图例默认样式“自动”将在图表中只有一个系列时将系列点值放入图例中。当图表包含多个系列时,“自动”会将系列名称放入图例中。在编辑器中,使用Dropdown Combobox获取默认值以外的值。如果更改图例样式以显示值,并且图表中有多个系列,TeeChart Pro将显示第一个系列的值。您可以使用自定义选项修改显示。

Chart1.Legend.LegendStyle := lsLastValues;//Puts the last value of each Series in the Legend box
文本样式

    有关可能的图例文本样式的列表,请参阅TextStyle属性。文本样式格式化图例中的系列条目(例如,将值显示为总计的百分比等)。

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

对齐

    使用对齐属性(顶部,底部,左侧和右侧)有4个可用的默认位置。右边是默认位置。图例的默认定位始终位于图表之外。有关定位图例的详细信息,请参阅有关自定义图例的部分。

调整图表

    大小调整大小图表属性,如果未启用,将在图表框架区域内绘制图例。虽然这对于某些Legend定位要求可能是令人满意的,但是通过使用Legend HorizMargin和VertMargin属性可以更好地控制与Chart框架相关的Legend定位。

HorizMargin和VertMargin

    Horizmargin适用于左右对齐的图例。VertMargin适用于顶部和底部对齐的图例。更改Horizmargin属性值将移动Chart框架相对于Legend,反之亦然。因此,将Horizmargin值设为负值会将图表移动到图例上(增加图表矩形区域的大小)。但是,这些属性不适用于在图表上重新定位图例,为实现此目的,最好使用运行时自定义图例内容中概述的技术。

自定义位置

    将Legend CustomPosition属性设置为true,然后将Legend的Top和Left像素坐标设置为自定义位置。

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

水平图例中的行数

    图例水平对齐(顶部或底部)时,可以指定行数:

Chart1.Legend.MaxNumRows:=3;

    默认情况下,MaxNumRows为0(零),这意味着Legend将根据需要使用尽可能多的行显示所有值。

颜色框修改(编辑器的符号选项卡)

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

With Chart1.Legend do  Begin    //move the colour boxes to the right of the value list    Symbol.Position:=spRight;    //set the boxes as continuous    Symbol.Continuous:=True;    //Make the boxes wider    Colorwidth:=40;  end;  //Hide the Pen of the line between the boxes  //The line depends on the Series itself (here a Line Series)  Series1.LinePen.Visible:=False;

在运行时自定义图例内容

    Legend事件提供完全控制Legend外观和内容的选项。

OnGetLegendRect事件

    图例外部矩形允许更改“图例”框的整体大小和位置。与OnGetLegendPos结合使用以重新定位图表图例和内容。

    例如。您可以使用CustomPosition更无缝地实现以下移动(请参阅上文)

procedure TForm1.Chart1GetLegendRect(Sender: TCustomChart; var Rect: TRect);begin  //This moves the Legend box to the left (leaving the contents where they were !)  //Set Chart1.Legend.ResizeChart := False; to disable resizing of the Chart  //thus placing the Legend inside the Chart rectangle  Rect.Left := Rect.Left - 100;  Rect.Right := Rect.Right - 100;end;

OnGetLegendPos事件

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

procedure TForm1.Chart1GetLegendPos(Sender: TCustomChart; Index: Integer;  var X, Y, XColor: Integer);begin  //Moves the Legend contents to the left by 100 pixels use with OnGetLegendRect  //Does not move colour boxes.  X := X - 100;end;

OnGetLegendText事件

    修改图例内容的文本。

procedure TForm1.Chart1GetLegendText(Sender: TCustomAxisPanel;  LegendStyle: TLegendStyle; Index: Integer; var LegendText: String);begin  //Modify Legend text  LegendText := LegendText + IntToStr(Index);end;

    将图例放置在图表矩形区域内时,请记住图例在系列和轴之前绘制,并且将出现在任何交叉点的任何一个下方。

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;

 查看Teechart.Net系列教程>>

购买TeeChart Pro VCL/FMX正版授权,请点击“咨询在线客服”哟!

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年4月18日
下一篇 2019年4月18日

相关推荐

发表回复

登录后才能评论