VCL组件DevExpress VCL图表控件中文指南 - 如何实现值标签自定义?

news2024/10/6 6:47:38

DevExpress VCL拥有230+个VCL界面控件、40+个自定义设计的VCL应用主题,它能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一代应用程序。

在刚更新的DevExpress VCL v23.1组件库中,包含了以下新的一些特性/功能:

  • 增强的高DPI分辨率支持
  • "Light" 样式渲染
  • Windows 11主题
  • VCL图表控件

在本文中,我们将重点介绍v23.1版本的图标控件中实现的一个重要特性——自定义轴、系列和总标签显示文本的功能,这个新功能对多种使用场景都十分有用,包括需要对所有值标签应用格式化模式、强调某些轴/系列值、为不同数量级显示不同的测量单位等。

DevExpress VCL v23.1正式版下载(Q技术交流:523159565)

如何将格式化模式应用于值标签

DevExpress VCL Chart控件现在支持高级格式化模式,类似于我们的WinForms Chart控件,格式化模式可以由静态文本和一个或多个支持的占位符字段标记组成,这些占位符字段标记包含在大括号中。

所有显示数值的占位符标记也支持数值格式模式,例如,下面的格式化模式显示具有两位小数点的浮点序列值:{V:0.00},大括号外的文本定义了相同格式化模式的通用值标签。

您可以将相同/不同的格式化模式分配给图表、参数轴、值轴或简单序列的总标签中所有序列值的标签。

系列值标签自定义

没有格式化模式的序列值标签按原样显示值,简单系列也向标签添加相应的参数。

要在设计时将格式化模式应用于所有值标签(对于一个系列),您必须:

  1. 双击Chart控件来调用Chart Designer对话框。
  2. 选择目标系列。
  3. 在Object Inspector(对象检查器)中展开View 和 ValueLabels 节点。
  4. 为TextFormat属性指定一个格式模式(例如{V:0.00}M km²)。

在这个特殊的实例中,值标签显示带有两个小数点后跟着一个度量单位的序列值。

总标签自定义

要自定义显示在Doughnut系列中心的Total标签,您必须:

  1. 确保选择了目标系列。
  2. 在Object Inspector(对象检查器)中展开View 和TotalLabel 节点。
  3. 将相同的格式化模式分配给 TextFormat 属性。

完成后,Total标签将使用与value标签相同的格式:

如何自定义个性化值标签

除了格式化模式(用于自定义值标签中的显示文本)之外,还可以根据特定条件自定义单个标签——例如,可以隐藏中间点的值标签,或者为不同的数量级显示不同的测量单位。DevExpress VCL的图表类包括以下值标签自定义事件,这些事件在Chart控件决定如何绘制单个标签时发生:

  • OnGetValueLabelDrawParameters 和 OnGetAxisValueLabelDrawParameters 事件在XY图中可用,并允许您分别自定义系列和轴值标签。
  • OnGetValueLabelDrawParameters 和 OnGetTotalLabelDrawParameters事件在一个简单的图表中可用,并允许您分别自定义系列值和总标签。

用户可以处理这些事件来标识当前处理的标签,并定义Chart控件在屏幕上绘制标签的方式。例如,您可以通过以下方式在标记不同数量级的轴和序列值的标签中显示不同的测量单位:

  • 如果一个序列值超过100万,对应的值标签会显示百万数字后面的M字符。
  • 如果序列值超过1000但小于100万,则相应的值标签显示后面跟着k字符的千位数字。

要实现这一点,需要处理 OnGetValueLabelDrawParameters 事件:

procedure TMyForm.cdAreaGetValueLabelDrawParameters(Sender: TdxChartCustomDiagram;
AArgs: TdxChartGetValueLabelDrawParametersEventArgs);
begin
if AArgs.SeriesPoint.Value >= 1000 * 1000 then // Millions
AArgs.Text := Format('%.1fM', [AArgs.SeriesPoint.Value / (1000 * 1000)])
else if AArgs.SeriesPoint.Value >= 1000 then // Thousands
AArgs.Text := Format('%.0fk', [AArgs.SeriesPoint.Value / 1000])
else
AArgs.Text := Format('%0f', [AArgs.SeriesPoint.Value]);
end;

然后,处理OnGetAxisValueLabelDrawParameters事件:

procedure TMyForm.cdAreaGetAxisValueLabelDrawParameters(Sender: TdxChartCustomDiagram;
AArgs: TdxChartGetAxisValueLabelDrawParametersEventArgs);
begin
if AArgs.Axis.ClassName <> 'TdxChartAxisY' then Exit;
if AArgs.Value >= 1000 * 1000 then // Millions
AArgs.Text := Format('%.1fM', [AArgs.Value / (1000 * 1000)])
else if AArgs.Value >= 1000 then // Thousands
AArgs.Text := Format('%.0fk', [AArgs.Value / 1000])
else
AArgs.Text := Format('%0f', [AArgs.Value]);
end;

因此,序列和轴值标签显示不同数量级的不同测量单位:


更多DevExpress线上公开课、中文教程资讯请上中文网获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/716710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

英伟达GeForce Game Ready 536.40 WHQL驱动程序快速获取

6月底&#xff0c;随着英伟达RTX 4060显卡发布&#xff0c;英伟达随即发布了Game Ready 536.40 WHQL显卡驱动&#xff0c;为RTX 4060显卡提供支持。除了RTX 4060 显卡驱动支持外&#xff0c;还有其他方面的优化&#xff0c;驱动人生为大家带来536.40 WHQL驱动支持一览。 NVIDI…

I2S协议

器件连接图&#xff1a; I2S&#xff08;Inter-IC Sound&#xff09;是一种数字音频传输协议&#xff0c;用于在集成电路之间传输音频数据。它通常用于连接音频设备&#xff0c;如数字音频处理器、音频编解码器、音频DAC和ADC等。 I2S协议通过三根线进行数据传输&#xff1a;时…

Markdown的基本介绍、书写格式,并写一个示例

Markdown是一种轻量级的标记语言&#xff0c;用于简洁地书写和格式化文本。它可以用于创建各种文档&#xff0c;如网页、博客文章、论坛帖子等。 Markdown的语法相对简单&#xff0c;易于学习和使用。以下是一些常用的Markdown语法和书写格式&#xff1a; 1. 标题&#xff1a…

金山企业版杀毒软件平台“终端安全系统V9”linux客户端不能注册的问题解决方法。

金山企业版杀毒软件平台“终端安全系统V9”&#xff0c;出现部分Linux客户端安装后无法注册到服务器的问题&#xff0c;本文提供了一种问题解决方法。 一、平台版本 平台为金山企业版杀毒软件平台“终端安全系统V9”&#xff1a; 平台端版本为V9.SP2.E1004 客户端安装包&…

软件测试技能,JMeter压力测试教程,通过Jython调用Python脚本(二十三)

一、前言 前面在 BeanShell 里面是通过 java 脚本实现请求的预处理&#xff0c;jmeter里面也可以调用python的脚本&#xff0c;需安装 jython.jar 的插件 Jython 是 Python 的纯 Java 实现&#xff0c;它无缝地结合了 Java 类与 Python&#xff0c;使用户能以 Python 语言的语…

解决打印机已经删除,但是wps打印时还会显示问题

进入桌面后&#xff0c;按下“Win R”组合键打开运行窗口输入“spool”并点击确定之后会进入路径为“C:\Windows\System32\spool”的文件夹中在spool文件夹中找到一个PRINTERS的文件夹&#xff0c;双击打开删除PRINTERS文件夹内的所有内容&#xff0c;不能删除的话需要先停止打…

Apikit 自学日记:Mock 内置函数

Mock内置函数教程 通过编写Javascript脚本设置响应内容&#xff0c;还可以直接使用内置函数设置“请求体触发条件”相关内容&#xff0c;设置的信息等同于在“请求体触发条件”输入框中的设置&#xff0c;如设置Header参数或者请求体参数等&#xff0c;设置完成后&#xff0c;…

每日一练 | 华为认证真题练习Day71

1、在使用FTP协议升级路由器软件时&#xff0c;传输模式应该选用&#xff08;&#xff09;。 A. 文字模式 B. 字节模式 C. 流字节模式 D. 二进制模式 2、DHCP服务器使用哪种报文确认主机可以使用IP地址&#xff1f; A. DHCP ACK B. DHCP DISCOVER C. DHCP REQUEST D. D…

npm命令在控制台没有输出

$ npm $ npm -v $ npm install package在控制台输出有关npm的所有命令都没有反应&#xff0c;没有报错没有信息&#xff0c;不知道是怎么回事。删掉了nodejs文件夹&#xff08;在C:/Program Files/nodejs和C:/users/<username>/AppData/Roaming/npm&#xff09;&#xff…

无监控,不运维!Prometheus预测与告警详解(一)

文章部分内容来源于公众号——布博士&#xff08;擎创科技资深产品专家&#xff09; 前言&#xff1a; 说到Prometheus&#xff0c;很多人第一印象可能是希腊神话中泰坦火神的形象&#xff0c; 但在我们程序员的眼里&#xff0c;Prometheus 是一个用GO编写的系统监控和警报工具…

WiFi模块IBF165,3路开关量输入,2路开关量输出,流量计脉冲计数

产品特点&#xff1a; ● 3路开关量输入&#xff0c;2路开关量输出 ● DI每一路都可用作计数器或者频率测量 ● DO每一路都可独立输出PWM信号 ● 支持Modbus TCP 通讯协议 ● 内置网页功能&#xff0c;可以通过网页查询电平状态 ● 可以通过网页设定输出状态 ● 宽电…

Windows 中使用 Linux 的 5 种方法详解

概要 作为一名开发者&#xff0c;你可能需要同时运行 Linux 和 Windows。幸运的是&#xff0c;有多种可以两全其美的方法&#xff0c;你不需要为每个操作系统购买不同的电脑。 在这篇文章中&#xff0c;我们将探讨在 Windows 机器上使用 Linux 的几种方法。其中一些是基于浏览…

Spring Cloud Stream消息驱动项目集成

&#x1f4dd; 学技术、更要掌握学习的方法&#xff0c;一起学习&#xff0c;让进步发生 &#x1f469;&#x1f3fb; 作者&#xff1a;一只IT攻城狮 &#xff0c;关注我&#xff0c;不迷路 。 &#x1f490;学习建议&#xff1a;1、养成习惯&#xff0c;学习java的任何一个技术…

Spark(9):RDD的序列化

目录 0. 相关文章链接 1. 闭包检查 2. 序列化方法和属性 3. Kryo 序列化框架 4. 核心点总结 0. 相关文章链接 Spark文章汇总 1. 闭包检查 从计算的角度, 算子以外的代码都是在 Driver 端执行, 算子里面的代码都是在 Executor 端执行。那么在 scala 的函数式编程中&…

C# 泛型List排序的实现

本文主要介绍了C# 泛型List排序的实现&#xff0c;分享给大家&#xff0c;具体如下&#xff1a; 代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 5…

Github下载Failed to connect to github.com port 443: Timed out

方法一&#xff1a; 使用ssh下载的方式 方法二 使用github加速网站 https://gitclone.com ,用命令行&#xff1a; git clone https://http://gitclone.com/http://github.com/xxx/yyy 参考链接 github克隆失败提示“443&#xff1a;Timed out”怎么解决&#xff1f; - 知乎

形式化验证,Complete Formal Verification of TriCore2 and Other Processors(五)

目录 一、Article:文献出处&#xff08;方便再次搜索&#xff09; &#xff08;1&#xff09;作者 &#xff08;2&#xff09;文献题目 &#xff08;3&#xff09;文献时间 &#xff08;4&#xff09;引用 二、Data:文献数据&#xff08;总结归纳&#xff0c;方便理解&am…

Linux 学习记录45(C++篇)

Linux 学习记录45(C篇) 本文目录 Linux 学习记录45(C篇)一、纯虚函数和抽象类1. 纯虚函数2. 抽象类 二、C中的异常处理1. 抛出异常2. 处理/捕获异常 三、模板(template)1. 模板函数(1. 模板函数的定义和调用(2. 模板函数需要显性调用的时机 2. 模板类3. 模板函数和模板类实现的…

【运维】GitLab相关配置优化等

默认 Git 设置 http post 的缓存为 1MB&#xff0c;使用命令将git的缓存设为500M&#xff0c;重新配置一下postBuffer值 git config --global http.postBuffer 524288000 解决方法2&#xff1a;直接修改config参数&#xff0c; windows: ./git/config中&#xff0c;加入以下…

构建无忧:探索 Linux 项目自动化构建神器-make/Makefile

目录 一.make/Makefile的介绍1.理解make/Makefile二.make/Makefile的使用1.基本使用2.PHONY3.特殊符号拓展 一.make/Makefile的介绍 1.理解make/Makefile 编写Makefile是Linux开发中一项重要的技能&#xff0c;熟练的运用这个工具能提高编译效率&#xff0c;帮助你完成大型工…