linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > c/c++/c# >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·Windows/Linux下配置Eclipse+C
·c语言static与extern的用法
·VC++(Ctime日期函数)应用
·typedef struct和struct的区别
·C/C++对文件操作
·C#发送Email邮件方法总结
·struct的初始化,拷贝及指针成
·C常用算法程序实例-线性代数方
·C语言入门实例 switch使用
·c++二叉树实现源代码
·对初学者的建议:如何学习C语言
·C++ Builder 处理控件中的文本
·常用的BCB & Delphi 函数
·一道C#面试题目引发的思考
·C++ Builder 使用Canvas对象的
最新文章
·使用C/C++扩展Python
·C语言入门实例 switch使用
·在C#里实现DATAGRID的打印预览
·如何使用 Visual C# .NET 创建
·C#发送Email邮件方法总结
·一道C#面试题目引发的思考
·c语言艺术清屏
·c语言static与extern的用法
·大数的阶乘算法
·C#编码好习惯
·构造函数,复制构造函数
·typedef struct和struct的区别
·struct的初始化,拷贝及指针成
·超强的指针学习笔记推荐
·STL中erase方法对链表类容器的
Google
 
C++ Builder 处理控件中的文本
[ 作者:  加入时间:2007-11-02 13:29:39  来自:Linux联盟收集整理 ]
5.3 处理控件中的文本ewkLinux联盟
下列各节介绍了如何使用richedit控件和memo(备注)控件的各种特性。有些特性在edit控件中也可使用。ewkLinux联盟
· 设置文本对齐方式。ewkLinux联盟
· 在运行时增加滚动条。ewkLinux联盟
· 增加剪贴板对象。ewkLinux联盟
· 选择文本。ewkLinux联盟
· 选定全部文本。ewkLinux联盟
· 剪切、拷贝及粘贴文本。ewkLinux联盟
· 删除选定文本。ewkLinux联盟
· 禁用菜单项。ewkLinux联盟
· 提供弹出式菜单。ewkLinux联盟
· 处理OnPopup事件。ewkLinux联盟
ewkLinux联盟
5.3.1 设置文本对齐方式ewkLinux联盟
在richedit组件或memo组件中,文本可以是左对齐、右对齐或居中。要改变文本对齐方式,可设置组件的Alignment属性。调整只当WordWrap属性为true时才生效,若自动换行被关闭,也就不存在可供对齐的边缘。ewkLinux联盟
ewkLinux联盟
例如,下列代码是RichEdit根据其中的按钮被选择的状态设置它的文本对齐方式:ewkLinux联盟
ewkLinux联盟
ewkLinux联盟
5.3.2 在运行时增加滚动条ewkLinux联盟
richedit组件或memo组件可根据需要包含水平或垂直滚动条,或者两者都有。当自动换行启用时,组件只需要垂直滚动条。若用户关闭自动换行,组件可能同时还需要水平滚动条,因为文本在编辑器右边不受限制。ewkLinux联盟
ewkLinux联盟
要在运行时增加滚动条:ewkLinux联盟
1) 确定是否文本可以超过右边界。在大多数情况下,这也就意味着检查自动换行是否启用。还可同时检查是否实际上已有文本行超过了控件宽度。ewkLinux联盟
2) 设置richedit组件或memo组件的ScrollBars属性来增加或删除滚动条。ewkLinux联盟
ewkLinux联盟
下例为Character|WordWrap菜单项的OnClick事件处理程序。ewkLinux联盟
ewkLinux联盟
ewkLinux联盟
richedit组件和memo组件处理滚动条的方法有少许差异。richedit组件在文本都在边界内时隐藏其滚动条。而memo组件则在滚动条启用后一直显示它们。ewkLinux联盟
ewkLinux联盟
5.3.3 增加剪贴板对象ewkLinux联盟
大多数的文本处理应用程序会给用户提供在文档之间移动选定文本的方法,包括文档在不同的应用程序中。C++Builder的Clipboard对象封装了Windows剪贴板及剪切、拷贝和粘贴文本(及其他格式,包括图形)等方法。Clipboard对象在Clipbrd单元中声明。ewkLinux联盟
ewkLinux联盟
要在应用程序中增加剪贴板对象:ewkLinux联盟
1) 选择需使用剪贴板的单元。ewkLinux联盟
2) 在窗体的.H文件,加入,ewkLinux联盟
 #include <vcl\Clipbrd.hpp>ewkLinux联盟
ewkLinux联盟
5.3.4 选择文本ewkLinux联盟
在将任何文本发送给剪贴板之前,文本必须先被选定。高亮显示选定文本是编辑组件内嵌的特性。当用户选定文本时,会高亮显示。表5-1是一些处理选定文本的通用属性。ewkLinux联盟
ewkLinux联盟
ewkLinux联盟
5.3.5 选定全部文本ewkLinux联盟
SelectAll方法选择richedit组件或memo组件中所有的内容。这在组件内容超出组件可见区域时特别有用。在其他的大多数情况下,用户使用键盘或鼠标选择文本。要全部选定richedit组件或memo组件中所有的内容为,可调用组件的SelectAll方法。ewkLinux联盟
例如:ewkLinux联盟
ewkLinux联盟
ewkLinux联盟
5.3.6 剪切、拷贝及粘贴文本ewkLinux联盟
应用程序使用剪贴板单元能剪切、拷贝及粘贴文本、图形和对象(通过Windows剪贴板)。编辑组件封装了标准Windows文本处理控件,它们中内嵌了与剪贴板交互的所有方法(参见6.可获得更多的关于在剪贴板中使用图形的信息)。要使用剪贴板剪切,拷贝及粘贴文本,可分别调用编辑组件的CutToClipboard、CopyToClipboard及PasteFromClipboard方法。ewkLinux联盟
例如,下列代码分别是Edit|Cut、Edit|Copy和Edit|Paste的OnClick事件处理程序:ewkLinux联盟
ewkLinux联盟
ewkLinux联盟
5.3.7 删除选定文本ewkLinux联盟
可在编辑组件中删除选定文本,而不是剪切到剪贴板。要删除选定文本,可调用ClearSelection方法。下例为Edit菜单中的Delete菜单项的OnClick事件处理程序:ewkLinux联盟
ewkLinux联盟
ewkLinux联盟
5.3.8 禁用菜单项ewkLinux联盟
不从菜单删除菜单命令而禁用它们常常是很有用的。例如,在一个文本编辑器里,若当前没有文本被选定,则Cut、Copy和Paste命令都是不适用的。用户选择菜单的同时也是启用或禁用菜单项的合适时机。要禁用菜单项,可将其Enabled属性设为false。ewkLinux联盟
下例是子窗体菜单栏的Edit菜单项的OnClick事件处理程序。它根据RichEdit1中是否存在选定文本而设置了Edit菜单项中Cut、Copy和Delete命令的Enabled属性。Paste命令的启用或禁用则根据剪贴板中是否存在文本。ewkLinux联盟
ewkLinux联盟
ewkLinux联盟
剪贴板的HasFormat方法根据剪贴板是否包含对象、文本或特定格式的图像返回一布尔值。通过使用参数CF_TEXT调用HasFormat,可确定剪贴板中是否存在文本,并在适当的时机启用或禁用Paste项。ewkLinux联盟
ewkLinux联盟
5.3.9 提供弹出式菜单ewkLinux联盟
弹出式,或本地的菜单是通用的使应用程序易于使用的特性。它们可使用户无须移动鼠标,只需在应用程序工作区中单击鼠标右键就可访问到一个常用命令列表。ewkLinux联盟
ewkLinux联盟
例如,在文本编辑器应用程序中,可加入一个弹出式菜单用以重复Cut、Copy和Paste编辑命令。这些弹出式菜单项可使用Edit菜单中相应项的事件处理程序。同时,也不需要为弹出式菜单项创建加速键或快捷键,因为其相应的常规菜单项通常已有快捷方式。ewkLinux联盟
ewkLinux联盟
窗体的PopupMenu属性指定当用户右击窗体中任意项时显示的弹出式菜单。每个控件都有其本身的PopupMenu属性,并可覆盖窗体的PopupMenu属性,这样就可为特定的控件定制弹出式菜单。要在窗体中加入弹出式菜单:ewkLinux联盟
1) 将一个弹出式菜单组件加入窗体。ewkLinux联盟
2) 使用菜单设计器来定义弹出式菜单的项。ewkLinux联盟
3) 将窗体或显示该菜单的控件的PopupMenu属性设为弹出式菜单组件名。ewkLinux联盟
4) 为弹出式的OnClick事件分配处理程序。ewkLinux联盟
ewkLinux联盟
5.3.10 处理OnPopup事件ewkLinux联盟
在显示弹出式菜单之前可能会想要调整其菜单项,就如在常规菜单中启用或禁用菜单项一样。在常规菜单中,可在菜单中处理菜单项的OnClick事件。而在弹出式菜单中,没有最上层的菜单栏,因此为准备弹出式菜单的命令,需处理菜单组件本身的事件。弹出式菜单组件提供了OnPopup事件来完成此类任务。ewkLinux联盟
ewkLinux联盟
要在弹出式菜单显示之前调整菜单项:ewkLinux联盟
1) 选择弹出式菜单组件。ewkLinux联盟
2) 为其OnPopup事件分配处理程序。ewkLinux联盟
3) 在事件处理程序中编写代码处理启用、禁用、隐藏或显示菜单项。ewkLinux联盟
ewkLinux联盟
在下列代码中,在5.3.8节中介绍过的EditEditClick事件处理程序被分配给弹出式菜单组件的OnPopup事件。只在其中为弹出式菜单的各个项加入了一行代码。ewkLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·C++ Builder 实现控件的拖动-停靠操作  (2007-11-02 13:28:44)
 ·C++ Builder 实现控件拖放操作  (2007-11-02 13:28:01)
 ·如何判断文本文件的编码格式  (2007-11-02 13:13:23)
 ·D7中使用D5 D6的控件  (2007-11-02 13:05:25)
 ·使用Delphi快速开发ActiveX控件  (2007-11-02 12:05:54)
 ·delphi设置控件透明  (2007-11-01 10:48:50)
 ·Delphi中树型控件的使用技巧  (2007-10-30 15:41:50)
 ·使控件在设计期间也响应消息  (2007-10-30 15:15:08)
 ·delphi动态创建控件  (2007-10-30 15:07:56)
 ·模仿combox(select)控件  (2007-10-30 14:26:31)