动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息

本月文章推荐
.2000年9月基础知识知识和C语言程.
.使用C++ Buider制作自绘画列.
.关于makefile.
.用QTDesigner编写Linux的图形界面.
.利齿C sharp代替C++?.
.五子棋(结束界面改观了一下).
.就c++中的const限定修饰符做一个.
.数据结构学习(C++)之稀疏矩阵.
.GNUC库----调试系统问题并进行修.
.C程序开发初级讲座之基础语句.
.qt简介.
.计算机应用基础操作题.
.如何实现大图标风格的打开对话框.
.C++编程从零开始之赋值操作符.
.如何用VC实现软件注册.
.雕虫小计—颜色渐变的进度条.
.用C语言实现Ping程序功能.
.通用ShellCode深入剖析.
.用VC编写基于Windows的精确定时程.
.如何取得Memo的行和列.

C++ Builder 使用动作

发表日期:2008-3-8 |



  4.9.2 使用动作

可以从组件面板的Standard页将动作列表加入窗体或数据模块。双击动作列表可显示ActionList编辑器,在其中可增加、删除或重排动作。每个动作的属性(Name除外)值都将应用于其客户控件。可在对象观察器中设置每个动作的属性。Name定义动作,而其他属性与事件(Caption、Checked、Enabled、HelpContext、Hint、ImageIndex、ShortCut、Visible和Execute)则对应于客户控件的属性。它们通常(不一定全是)和客户属性同名。例如动作的Checked属性对应于TToolButton的Down属性。

1.集中处理程序代码
所有控件都包括一个公共的属性Action,它使控件可作为动作对象的客户使用。一般用做动作对象的客户的控件,如TToolButton、TSpeedButton、TMenuItem和TButton会发布Action属性以便可在设计时建立客户/动作的关系。当为动作列表的某个动作设置Action属性时,动作的对应属性值将复制到客户控件中。动作对象的所有公共属性与事件(除Name和Tag之外)都动态地链接到客户控件。例如,当需要禁用按钮和菜单项时,可将相应的程序代码集中在动作对象内,而不必去为按钮和菜单项重复编制程序代码;这样,当动作被禁用时,所有对应的按钮和菜单项都会被禁用。

注重 假如使用工具按钮或菜单项,必须用手工方式将对应的工具栏或菜单组件的Images属性设置为动作列表的Images属性。即使ImageIndex属性已动态地链接到客户,也必须如此。

2.链接属性
当设置了客户的Action属性后,建立了客户控件和动作之间的链接。这种链接由客户的动作链接治理,它可将客户的属性与动作的属性关联起来。当动作改变时,动作链接更新客户属性。
可有选择地重载客户的某一属性与相关动作对应属性的链接。在设计时设置客户的某值,只影响该属性的链接,客户的属性改变,而相关动作对应的属性值不变,客户与相关动作其他的链接也不受影响。应用程序并不需要显式处理动作链接来使用动作。动作链接自动治理客户与动作相应属性的链接。
每个独立的客户控件都使用不同的动作链接类,每个类中都有一组可用于与动作链接的属性。

注重可通过查阅VCL参考的动作链接类部分来决定要与动作链接的客户控件的属性。

3.执行动作
当客户组件或控件被按下之后,其相关动作的OnExecute事件将会发生。下列程序代码介绍的
OnExecute事件处理程序,可在动作执行时显示或隐藏工具栏:
C++ Builder 使用动作(图一)
当用户点击客户控件时,客户会为其相关动作生成OnExecute事件。若该事件存在事件处理程序,用户点击动作将直接被处理。除非需要与其他事件处理程序共享代码或编写定制的、可重用的动作,否则只需加入动作到动作列表,设置其属性,编写OnExecute事件处理程序代码,并通过设置Action属性将其与所有相关控件链接。
若要编写一个事件处理程序包含对多个动作的响应,可编写一个响应动作列表甚或应用程序层的事件处理程序。C++Builder遵循一个分发流程以搜索响应用户动作的方法。
考虑一个例子,组件显示在图4-11中。客户Speedbutton1链接Cut1动作(Speedbutton1的Action属性为Cut1)。图4-11显示当用户单击Speedbutton1后的发送(dispatching)流程。
C++ Builder 使用动作(图二) 单击Speedbutton1将启动下列的执行流程:
1) 因为Speedbutton1的Action属性为Cut1,Cut1接收到OnExecute事件,若Cut1存在OnExecute事件处理程序,进程在此终止。若Cut1不存在OnExecute事件处理程序,则进程继续。
2) 因为Cut1不存在OnExecute事件处理程序,流程顺延由其动作列表(ActionList1)处理事件。ActionList1接收到OnExecute事件(动作列表的OnExecute事件,在其中任一动作没有OnExecute事件处理程序用以处理事件时发生),动作列表的OnExecute事件处理程序有一参数Handled,其缺省返回值为false,若处理程序存在并处理了事件,返回true,且进程在此终止。

例如:
C++ Builder 使用动作(图三)
若动作列表的OnExecute事件未被处理,则进程继续。

3)全局对象Application接收到OnActionExecute事件(该事件在应用程序中所有的动作列表都无法处理事件时发生),与动作列表的OnExecute事件处理程序相同,OnActionExecute事件处理程序也有一参数Handled,其缺省返回值为false。若处理程序存在并处理了事件,返回true,且进程在此终止。例如:
C++ Builder 使用动作(图四)

4)对于可用事件处理程序响应的动作,进程到此终止。但对于预定义的动作类,如Cut1,则进程并未结束。你可使用内置的动作类或自行生成知道如何确定目标的动作类(如编辑控件)。当所有层次都未发现事件处理程序时,应用程序将试图搜索动作执行的目标,当应用程序找到哪个动作知道如何定位的目标时,将激活动作。参见4.9.4节的“动作如何搜索其目标”可获得关于应用程序如何找到那些预定义的动作类的目标的更多内容。

4.更新动作
当应用程序空闲时,所有与当前正显示的控件或菜单链接的动作的OnUpdate事件发生。这给应用程序代码集中处理提供了可用与禁用或复选与否等等的时机。例如,下列代码举例说明当菜单栏可见时OnUpdate处理动作的“复选”的事件处理程序。
C++ Builder 使用动作(图五)

更新动作的分发流程与本节中讨论的“执行动作”中的分发流程相同。
警告 不要把费时的代码加到OnUpdate事件处理程序中。OnUpdate事件处理程序在应用程序空闲时执行。若事件处理程序需要太多时间,会影响整个应用程序的执行。

上一篇:C语言入门之运算符和表达式(1) 人气:393
下一篇:C++ Builder 编写动作组件 人气:507
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-12 team论坛 v2.0.4 bulid 080916 A
2008-10-12 Roclog v3.1.6
2008-10-12 SupeV v1.0.1 简体中文 GBK
2008-10-12 NetCMS v1.6.0.1010 正式版
2008-10-12 PHP考试系统PPFrame v1.2.7
2008-10-12 LPAS个人相册 v1.6.3
2008-10-12 快问仿百度知道系统 动态-静态-互
2008-10-12 方卡广告防点击系统 V1.0 GB2312
2008-10-12 泡菜内容管理系统[PCMS] v1.0 Bu
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成