社区
Delphi
帖子详情
一个关于TRichEdit控件的问题·
TangDY
2003-09-22 04:39:14
请问一下,怎么在TRichEdit里根据某些条件用不同的颜色显示文字,比如:要显示“你好,欢迎使用Delphi”,要求用红色显示“Delphi”用青色显示“你好,欢迎使用”请给出代码?
万分感谢!
...全文
175
2
打赏
收藏
一个关于TRichEdit控件的问题·
请问一下,怎么在TRichEdit里根据某些条件用不同的颜色显示文字,比如:要显示“你好,欢迎使用Delphi”,要求用红色显示“Delphi”用青色显示“你好,欢迎使用”请给出代码? 万分感谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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获取
TRich
Edit
控件
光标所在的行号..rar
在Delphi编程环境中,
TRich
Edit
控件
是
一个
非常常用的组件,用于显示和编辑多行文本。它提供了丰富的文本格式化功能,比如字体、颜色、样式等。然而,有时候我们需要获取到用户在
TRich
Edit
中光标所在的行号,以便进行...
Delphi控制
TRich
Edit
组件文字内容滚动..rar
本教程主要关注如何在Delphi中控制
TRich
Edit
组件的文字内容滚动,这涉及到对
TRich
Edit
控件
的深入理解和编程技巧。 首先,
TRich
Edit
组件的滚动通常是自动处理的,当文本内容超过可视区域时,用户可以通过滚动条进行...
Delphi控制
TRich
Edit
组件文字内容滚动
摘要:Delphi源码,
控件
组件,
TRich
Edit
这几天做
一个
Delphi项目,要用到
TRich
Edit
组件内的文字滚动,索性研究了一下,编写了这么
一个
实例,点击按钮可控制
TRich
Edit
组件显示区的文字滚动。关于
TRich
Edit
组件:它是一...
delphi
控件
rich
edit
操作,类似记事本查找,替换,字体设计等
在Delphi编程环境中,Rich
Edit
控件
是一种常用的文本编辑组件,它可以提供类似于Windows记事本的文本编辑功能,包括查找、替换以及字体设计等。在本文中,我们将深入探讨如何利用Delphi的Rich
Edit
控件
实现这些高级...
Rich
Edit
控件
删除行和自动滚屏
在Windows编程中,Rich
Edit
控件
是
一个
非常常用的文本编辑组件,它提供了比标准
Edit
控件
更丰富的文本格式化功能。本篇文章将详细讲解如何在 Rich
Edit
控件
中实现删除行的操作,并结合自动滚屏功能,使得用户在进行...
Delphi
5,928
社区成员
262,931
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章