基于Windows操作系统通用状态指示器设计.docVIP

基于Windows操作系统通用状态指示器设计.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Windows操作系统通用状态指示器设计

基于Windows操作系统通用状态指示器设计   摘 要 本文设计了数个通用状态指示函数,用于解决Windows环境下应用程序中各种状态指示问题。这些函数利用界面可视组件设计,包含各种状态指示所需的参数并使用变体数组类型作为输入。定义了一组公有数据数组作为函数与实际工程应用的内存交换区,调用前将界面元素及协议提示信息传递给该交换区,以便于多次调用时调用方式一致。设计了可视条件参数,该参数可控制状态指示个数。设计了一款调用函数的调试程序,能在实际工程函数调用前给出调用效果。以上函数可结合具体工程项目通信协议快速调用,从而提高开发者效率。   【关键词】状态指示器 标签组件 形状组件 图形组件 协议   任何控制类或相关应用项目软件开发时,都会遇到这样的问题:在通讯协议中,使用某些字节表示状态变化。这样的状态表示字节在通讯协议中可能占几个字节,字节中每一位代表一种状态。每个字节就可代表8个具体物理参数状态。在工程项目中,假定通信协议中有7个状态字节,那么就有7*8=56种状态指示,这就需要设计并制作出这56个状态指示图标。并以不同的颜色表示相应的状态(例如,绿色代表正常,红色代表异常)。当工程项目改变后,通讯协议随之发生变化。开发者则又要依据工程要求编写大量的状态指示代码。   本文试图针对形式各异的通讯协议,设计一种在Windows操作系统下的通用状态指示器,以节省大量的代码工作量,提高程序开发效率。   现代的开发工具中,可视化状态指示组件较多,本文以Rad Studio XE10.0中的Delphi语言为例展开讨论。   1 状态指示器基本内容   状态指示器通常情况下信息表示应该为:状态输入值、告警信息级别、告警指示形状、背景颜色、前景颜色、字体前景颜色、字体背景颜色、可视性控制变量等。   状态指示器经常使用可视组件的标签组件、形状组件、图形组件来表达。本文使用这三种可视组件制作了4个通用函数来表达工程中各种状态指示问题。其中,3个函数用于各种“2值”逻辑状态指示问题,1个函数用于各种告警级别逻辑指示问题。   1.1 “2值”逻辑问题   状态输入参数值为典型的“2值”逻辑问题。例如,为0代表正常,为1代表异常。   1.2 告警级别逻辑问题   该信息为多值逻辑问题,例如表示天气状况的指示问题,“0”代表晴天,“1”代表小雨,“2”代表中雨,“3”代表大雨等。在这种逻辑下,雨天表示方法就要使用不同颜色。   1.3 其它问题   在使用形状组件和图形组件作指示器时,函数参数中哑元应为:状态输入参数、形状参数、状态指示前景颜色、状态指示背景颜色,应具备可视控制参数。如果带Hit支持功能(当鼠标移动到这个图形时能够自动指示)则应该设计正确指示标题、错误指示标题。   2 通用状态指示器函数设计   共设计三个函数。此三个函数形式相仿,分别使用Timage组件、Tshape组件和Tlabel组件作为界面可视组件表示状态指示,其中输入字节表示一次性处理8种状态,所以其它哑元参数为动态指针型。   下面以标签组件Tlabel作为例说明该通用函数形式化参数设计方法。状态输入参数为1字节,表示8个指示状态,该函数调用后同时处理8个状态指示,状态信息级别参数表达在异常情况下告警级别。部分代码段为:   Procedure DisplayLableLamp(   InputB:Byte;//输入字节   Modellevel:Byte;//状态信息级别   RzLabel:Array of TRzLabel;//界面可视组件   BackColor:Array of TColor;//背景颜色   FrontColor:Array of TColor;//前景颜色   PenColor:Array of TColor;//字体前景颜色   PenErrColor:Array of TColor;//字体背景颜色   Visible:Array of Boolean;//可视性控制变量   OKCaption:Array of String;//正确提示字符串   ErrorCaption:Array of String);//异常告警提示字符串   来一段实际代码,判断输入某位为1或者0时的处理。   var   i:integer;   begin   if (InputB and $01)=$01 then   begin   RzLabel[0].Color:=FrontColor[0];   RzLabel[0].caption:=OKCaption[0];   RzLabel[0].Font.Color:=PenColor[0];   end  

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档