社区
Delphi
帖子详情
一个关于TRichEdit控件的问题·
TangDY
2003-09-22 04:39:14
请问一下,怎么在TRichEdit里根据某些条件用不同的颜色显示文字,比如:要显示“你好,欢迎使用Delphi”,要求用红色显示“Delphi”用青色显示“你好,欢迎使用”请给出代码?
万分感谢!
...全文
171
2
打赏
收藏
一个关于TRichEdit控件的问题·
请问一下,怎么在TRichEdit里根据某些条件用不同的颜色显示文字,比如:要显示“你好,欢迎使用Delphi”,要求用红色显示“Delphi”用青色显示“你好,欢迎使用”请给出代码? 万分感谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
PrgmLover
2003-09-22
打赏
举报
回复
设置选中的文字的颜色:
if 条件1 then
RichEdit1.SelAttributes.Color:=clRed
else
RichEdit1.SelAttributes.Color:=clBlue
路人陈
2003-09-22
打赏
举报
回复
如何在richedit中设置字体的背景色?
在richedit中,要填充一个CHARFORMAT结构,再用这个结构的指针作为参数给richedit发
EM_SETCHARFORMAT的消息。我们可以在delphi目录下的richedit.pas文件里找到这个CHARFORMAT
的Delphi原型TCHARFORMAT,但是可以发现这个CHARFORMAT里只有一个crTextColor字段是用来描述
字体颜色的,并没有描述背景色的字段,难道RichEdit真的就不直接支持背景色了么?可以做
个实验:在word里编辑几个有背景颜色的字(谁说word不可以设置字体背景色的),选中COPY,
再编译运行Delphi的RichEdit的那个Demo程序,在里面选paste,可以看到字体的背景色是正常
显示出来了。说明RichEdit是可以完成这工作的,只是我们没掌握正确方法。查阅大量资料,
发现EM_SETCHARFORMAT消息还可以传递另外一个结构:CHARFORMAT2,这个结构是CHARFORMAT的
增强版本,里面可以支持字距/背景色/动画显示效果等增强功能,只是需要注意需要有2.0版本
的richEdit支持(目前的系统里几乎都会有的)。了解了这些以后我们就可以开始着手实验了:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls,richedit;//注意要加上RichEdit的引用
type
TForm1 = class(TForm)
RichEdit1: TRichEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var Fmt :TCharFormat2;
begin
Fmt.cbSize := SizeOf(Fmt);//这里放传递的结构大小,系统通过这个知道传递的是CharFormat还是CharFormat2
Fmt.dwMask := CFM_COLOR or CFM_BACKCOLOR;//告诉系统只有字体颜色和背景颜色两个字段的值有效
Fmt.crTextColor := clRed;//设置字体颜色
Fmt.crBackColor := clYellow;//设置字体背景色
RichEdit1.Perform(EM_SETCHARFORMAT,SCF_SELECTION,integer(@Fmt));//发EM_SETCHARFORMAT消息给RichEdit
//其中SCF_SELECTION表示该设置只对选择的文字有效,具体用法参考win32 SDK HELP
RichEdit1.Lines.Add('我靠啊');// 插入一行新文字
end;
看看你的RichEdit里的字是不是有背景颜色了。(这里的代码只是为了简单,说明主要问题,要正确设置最好先选定要设置的文本)
如果要考虑的再全面一点,可以在程序启动时加上一些判断:
inst := LoadLibrary('riched20.dll');//riched20.dll是richedit2的动态联结库文件
if inst = nil then
出错处理.........
...........
以确保系统能找到相关的库文件
其实深入研究可以发现用CHARFORMAT2可以简单的实现很多TRichEdit无法直接实现的特殊功能,
Delphi获取
TRichEdit
控
件光标所在的行号..rar
Delphi获取
TRichEdit
控
件光标所在的行号..rar`
Delphi
控
制
TRichEdit
组件文字内容滚动
摘要:Delphi源码,
控
件组件,
TRichEdit
这几天做一个Delphi项目,要用到
TRichEdit
组件内的文字滚动,索性研究了一下,编写了这么一个实例,点击按钮可
控
制
TRichEdit
组件显示区的文字滚动。关于
TRichEdit
组件:它是一...
Delphi7.精彩编程百例1-20
实例1 添加图形按钮 实例2 简易计算器 实例3 数学曲线 实例4 动态改变鼠标 实例5 制作工具栏 实例6 查看计算机硬件...ListBox
控
件信息 实例19 TreeView
控
件 实例20
TRichEdit
控
件
Delphi获取文本
控
件光标所在的行号.rar
Delphi获取文本
控
件光标所在的行号,具体来说是获取
TRichEdit
控
件的光标所处在第几行,在窗口右侧的空白处,会显示出当前光标所处在第几行。操作时,在左侧文本框区域随意点击一下鼠标,然后按一下回车键,右侧即会...
dephi精确百例2
本资源精解了以下
控
件的使用,有实例,绝对好用.TRadioButton,TProgressBar
控
件,ListBox
控
件,TTimer
控
件,将数字转换为中文大写, 在Memo
控
件中显示文件...设置系统热键,截取ListBox
控
件信息,TreeView
控
件,
TRichEdit
控
件
Delphi
5,392
社区成员
262,732
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章