搜狐首页 - 新闻 - 体育 - 娱乐 - 财经 - IT - 汽车 - 房产 - 女人 - 短信 - 彩信 - 校友录 - 邮件 - 搜索 - BBS - 搜狗 
搜狐首页 >> 搜狐IT >> 网狐教程-搜狐IT >> 程序开发-网狐教程-搜狐IT >> Delphi
DELPHI 技巧 - RichEdit使用技
IT.SOHU.COM  2004-03-17 09:46  转自: eNet硅谷动力
页面功能 【我来说两句】【我要“揪”错】【推荐】【字体: 】【打印】 【关闭

  RichEdit组件和Memo组件非常相似,但RichEdit组件的文字可以有多种字体、颜色。它们一般用于制作文本编辑器。在文本编辑器中我们一般需要知道光标的当前行号,另外我们还要实现Undo(撤销)功能。

  一、如何得知当前行号

  用RichEdit(或者memo)控件制作文本编辑器时,通过访问lines.count属性可以得到总行数,但是若想知道光标当前所在行的行号就麻烦了,因为delphi没有提供这个属性。要实现这个编辑器必备功能,就须调用em_LineFromChar。请试试下面的程序。

  先在窗口中布置一个RichEdit或者memo(命名为editor),以及一个button。在button的onclick事件中写入下列代码。   

  var   CurrentLine:Integer;   
  begin   
  CurrentLine:=Editor Perform(em_ LineFromChar,SFFFF,0);          
  Application MessageBox(PChar(′当前行号是′+IntToStr(CurrentLine)),'消息',mbiconinformation);
  end;   

  需要注意的是,第一行的行号为零。   

  二、如何撤消操作(undo)   

  对于memo来说,实现undo是不需编程的,只要让popupmenu属性为空,运行时就能用鼠标右键激活一个常用操作菜单,其中包括撤消、剪切、复制、粘贴、删除和全选六项。

  但可惜的是,这一招对于功能强大的RichEdit控件居然行不通,害得我们还要自己设计一个popupmemu。当你用CutToClipBoard等语句轻松而顺利地完成了“剪切”等功能,接着便会无奈地发现,竟找不到undo或cancel之类的语句来执行“撤消”。

  这时你需要这样处理:   RichEdit1 Perform(EM_UNDO,0,0);   

  另外还应检查是否允许撤消,从而开启或关闭弹出菜单中的“撤消”项:   

  Undo1 Enabled:=RichEdit Perform(EM_CANUNDO,0,0)<>0;   

  以上程序在Delphi5中调试通过。
页面功能 【我来说两句】【我要“揪”错】【推荐】【字体: 】【打印】 【关闭





ChinaRen - 繁体版 - 搜狐招聘 - 网站登录 - 帮助中心 - 设置首页 - 广告服务 - 联系方式 - 保护隐私权 - About SOHU - 公司介绍
Copyright © 2004 Sohu.com Inc. All rights reserved. 搜狐公司 版权所有

相关连接

 ■ 我来说两句
用  户:        匿名发出:
请各位遵纪守法并注意语言文明。
 
*经营许可证编号:京ICP00000008号
*《互联网电子公告服务管理规定》
*《全国人大常委会关于维护互联网安全的规定》
短信内容:
手 机
自写包月5分钱/条 更多>>
搜狐天气为你抢先报! 魔力占卜姻缘一线牵!
金币不是赚的是抢的! 爱情玄机任由你游戏!
猪八戒这样泡到紫霞! 帅哥一定要看的宝典!
你受哪颗星星的庇护? 萨达姆最新关押照片!
精彩彩信
[和弦]欧若拉 一生有你
沧海一声笑
[音效]挪威的森林
爆铃 MP3 G点图 动画
[和弦]童话 你到底爱谁
[原唱]一千年以后 断点
[爆笑音效]赚钱拉 野花
[串烧]张韶涵 潘玮柏
精彩短信
[和弦]小薇 好心分手
[音效]当当当当 忘记


搜狐商城
·家电|品牌风扇新品热销
·音乐|秦海璐幸福回味
·图书|《眼镜蛇事件》
更多...