ActionList组件在菜单编制中的应用.doc

ActionList组件在菜单编制中的应用.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ActionList组件在菜单编制中的应用

Delphi中ActionList组件在菜单编制中的应用 Delphi的VCL提供有MainNenu、PopupMenu、Button、BitBtn、SpeedButton等组件来帮助我们设计菜单功能。这些组件的使用方式非常 简单,因而使得菜单的设计也变的很简单。 MainMenu组件是主要的下拉式菜单,大部份的窗口程序菜单都是使用这个对象来完成的。它的优点是设计方式简单,符合标准,不占画面空间 。缺点是必须一层一层地进入子功能选项,无法一次看到所有 功能选项,而且在尚无选择任何功能之前,窗口内空无一物,不甚美观。 Delphi还提供了PopupMenu组件来制作鼠标右键菜单,使用鼠标指向任一对象,再按下鼠标右键时,会看到一个下拉式的功能菜单,可以直接选择这些功能,而不用进入一层又一层的主功能菜单,使用非常方便 。 利用Delphi提供的Button、BitBtn、SpeedButton三个按钮组件,可以制作按钮菜单。它的优点是可以加入漂亮的图标,一次可以看到许多选项。缺点是占程序及画面空间,而且不符合窗口应用程序标准规范。 至于使用何种方式来构造自己的功能菜单,必须根据自己的需要而定,如果你想编写 一个符合窗口标准的应用程序,下拉式菜单是唯一的选择,如果你编写的应用程序功能选项并不多,可以考虑采用按钮菜单的设计方式。那么是不是在编制菜单程序时,只能选择下拉式菜单或按钮菜单中的一种呢?答案当然不是。你完全可以将下拉式菜单、按钮菜单、鼠标右键菜单联合使用,制作成具有Windows风格的窗口菜单。 但是当你采用上述三种菜单方式来制作具有Windows风格的窗口菜单时,常常会发生一些困扰,你必须在MenuItem的OnClick事件过程内编写程序代码,如果SpeedButton或PopupMenu执行的是同样的功能,那么为了不让程序重复,必须把SpeedButton或 PopupMenu的OnClick事件指向MenuItem的OnClick事件,如此一来,当应用程序的规模越来越大时,你将越不容易维护程序,因为程序与功能项目间的关系会变得很复杂,如果MenuItem中的名称起的不规范,就更不容易维护。用Delphi提供的ActionList组件,就可以解决上述扰人的问题,程序的写法是把所有的功能项目都声明在ActionList组件内,然后再把控制组件的Action属性或激活 事件(像OnClick、OnDblClick等)指向ActionList组件内的ActionItem,这时就可以在ActionList组件内统一管理所有的程序了。 下面结合一个具体的应用程序说明它的制作方法: 首先,在组件模板Standard页面上找到ActionList组件,把它拉到Form上,然后在它上面用鼠标双击打开ActionList编辑器,用 NewAction按钮或在左半边Categories按鼠标右键来建立一个ActionItem,然后根据不同的功能定义给与ActionItem具有特定意义 的名称,最后再把程序代码写在ActionItem的OnExecute事件过程内。 接下来,根据应用程序的功能项目,一个一个地把ActionItem定义出来,然后编写实际的程序代码,这时候整个ActionList才算完成,像上面的应用程序Menu上有一个“出库单”功能选项,SpeedButton也有“出库单”功能按钮,这两件组件都有一个名为Action的属性,把此属性指向TActionList的Ckd项目,将会执行同一功能。这样一来,程序代码就很容易维护,而且程序的结构也变得更清楚。 程序代码如下:(部分) unit mainuni; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Buttons, Menus, StdCtrls, Grids, jpeg, ActnList, ImgList; type Tmainfrm = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; Panel1: TPanel; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; SpeedButton5: TSpeedButton;

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档