网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
Delphi ActionList详解
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
一个友好的用户界面,必须具有下拉菜单,弹出菜单,工具条和快捷键。同样一个功能,程序员可能要提供几种操作方式,如文本拷贝,菜单命令&Copy,快捷键Ctrl+C,工具条上的拷贝按钮,都是程序员提供给用户的操作,可以大大方便了不同层次的用户。但是,多增加一种操作方式,就意味着增加响应事件的代码,还有,实现统一功能的多个操作必须一致,如剪切板上不为空的时候,菜单命令,快捷键,按钮,都是可以选择的Enabled状态,而剪切板上没有内容时,这些构件的Enabled状态都为假。当然,如果不集中控制这些细节的话,实现相同功能的构件要一致,必须多增加代码,控制较为复杂。
Action就是将实现某个功能的细节统一管理起来,如Caption, Checked, Enabled, HelpContext, Hint, ImageIndex, ShortCt, Visible, onExecute等属性和事件。程序员设置Action属性的同时,还要实现执行Action的代码onExecute。定义了Action后,将其连接到一个菜单项,或者按钮上时,Action定义的属性和OnExecute事件,马上取代了原来的设置,并且建立了连接。通过这个连接,当Action的属性发生变化时,如Enabled发生变化,那么与之连接的构件属性都会自动更新;反过来,当构件对应的事件被执行时,Action的onExecute也被调用。
8.1.2 Action 和ActionList
Action是定义了最小的功能单位,使用它来在不同构件间,达到代码集中管理。表4-12定义了Action的一些属性:
ActionList是将多个Action统一管理的构件,在窗体设计阶段,使用它的弹出菜单,可以增减Action和定义Action的属性。它本身的属性Image连接了一个TImageList,指出它所包含的Action使用那个TImageList来定义ImageIndex。ActionLink是一个看不见的构件,但是它是负责构件和Action之间建立连接的。
表 4-12  Action属性和事件
属性和事件  具体功能
Caption  标题,可用于菜单项,ToolButton等。
Category  分类
Checked  设置选择状态,用于菜单项
Enabled  设置可用状态,用于与之连接的所有构件
HelpContext  帮助的索引项,用于与之相连的所有构件
Hint  智能感知,设置提示内容
ImageIndex  设置菜单项和按钮上的图片
Visible  指示与之连接的构件可否显示
ShortCut  设置菜单项的快捷键。
OnExecute  执行此Action的代码
OnHint  当被感知的构件显示Hint时调用的代码
OnUpdate  当Action更新构件的属性时调用的代码
////////////
我们先来认识TActionList。TActionList 是从TCustomAction中继承来的,由它管理定义好的Action,是程序员在对Action编程的接口。
新建一个工程文件,在主窗体上增加一个TActionList,一个TMemo,一个TImageList,几个按钮,几个菜单项。双击TActionlist,会出现它的编辑界面。再单击右键选择New standard action,显示出预定义的Action类别,属性Category是用来表明Action所属类别,我们可以根据需要选择具体的类别,如图4-10所示,我们引入了文件操作的一些标准Action。
这里所列的Action,大部分属性已经定义好了,就是说只要把他们添加到ActionList中,就可以使用。同样的,也可以新建Action,在Category属性中加上自己定义的名字,之后再添加新的Action 。
8.2.2 连接Action
定义了Action后,不与菜单项和按钮连接,是不能使用的,也没有达到程序功能集中实现和管理。使用对象观察器,看看我们刚刚选择的菜单项和按钮上是否有属性Action。
在这些构件的Action属性内,选择一个Action之后,构件本身的很多属性都随着Action定义的属性发生了变化,例如菜单项的Caption与Action的属性Caption就一致了,构件的属性Name和Tag是不随着改变的。连接后,Action的属性值被拷贝到所连接构件的相应属性上,这种连接是动

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号