传奇归来行会公告编辑的字怎么改变颜色

怎么让RichEdit改变已存在的一行字的颜色,而不是新增一行的颜色 - C++ Builder当前位置:& &&&怎么让RichEdit改变已存在的一行字的颜色,而不是新怎么让RichEdit改变已存在的一行字的颜色,而不是新增一行的颜色&&网友分享于:&&浏览:111次如何让RichEdit改变已存在的一行字的颜色,而不是新增一行的颜色。初始化了一个RichEdit1,在程序的其他很多地方都调用Add(&&)方法为RichEdit1增加一行字符串。现在想这样做:在RichEdit1的Change函数里判断,当新添加的行中有“正常”二字,把这行的颜色改为绿色。有“异常”二字,改行为红色。Change函数中的部分代码如下:AnsiString tmp = RichEdit1-&Lines-&T \\取一行的内容,不知道是不是最后一行内容if(tmp.Pos(&异常&)!=0) &
RichEdit1-&SelAttribute-&Color=clRif(tmp.Pos(&正常&)!=0) &
RichEdit1-&SelAttribute-&Color=clG这样,是在来了带有“异常”字样的一行字后,RichEdit1才设置为红色,于是后面来的行就变成红色了,当前行没有改变。求救。------解决方案--------------------
折腾够了?看来必须得我出手了!解决这个问题,其实tooooooo simple的。代码如下,不解释,注释已去掉。C/C++ code
void __fastcall TForm1::RichEdit1Change(TObject *Sender)
Application-&ProcessMessages();
TRichEdit *re = dynamic_cast &TRichEdit *& (Sender);
int r = SendMessage(re-&Handle, EM_LINEFROMCHAR, re-&SelStart, 0);
String strLine = re-&Lines-&Strings[r];
if (strLine.Pos(&正常&) & 0 || strLine.Pos(&异常&) & 0)
int n = re-&SelS
re-&SelStart = re-&Perform(EM_LINEINDEX, r, 0);
re-&SelLength = strLine.Length();
re-&SelAttributes-&Color = strLine.Pos(&正常&) & 0? clGreen: clR
re-&SelStart =
re-&SelLength = 0;
re-&SelAttributes-&Color = clB
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有2007年7月 VB大版内专家分月排行榜第二
2007年3月 VB大版内专家分月排行榜第三
2007年7月 VB大版内专家分月排行榜第二
2007年3月 VB大版内专家分月排行榜第三
2008年5月 VB大版内专家分月排行榜第二
2008年1月 VB大版内专家分月排行榜第三2007年11月 VB大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。}

我要回帖

更多关于 传奇归来国际版 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信