如何设置RICHEDIT中某一行的颜色

lianrouwupan 2012-07-04 11:26:55
在EDIT1里输入某一行数。
然后按一个按钮,弹出颜色对话框,RICHEDIT里相应的行数里的字符颜色就变成选中的颜色,其他行数的字符颜色不变。
请教各位大侠。
...全文
424 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lianrouwupan 2012-07-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
HTML code

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int LineNo = Edit1->Text.ToIntDef(1);

RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX, LineNo - 1, 0……
[/Quote]
如果就直接在EDIT1输入行号,然后选颜色。再在RICHEDIT1你输入字符,无论哪行都是我之前选中的颜色。何解?高手!
lianrouwupan 2012-07-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
HTML code


void __fastcall TForm1::Button1Click(TObject *Sender)
{
int LineNo = Edit1->Text.ToIntDef(1);

RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX, LineNo - 1,……
[/Quote]

RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX, LineNo - 1,0);

这里为什么要这样写,能不能解释一下?
lianrouwupan 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
int n = 0;
for (int i=0; i <Memo-> Lines-> Count; i++)
{
s = Memo-> Lines-> Strings[i];
if (s[1] == '( ' && s[s.Length()]== ') ')
{
RichEdit-> SelStart = n;
RichEdit->……
[/Quote]

我要在EDIT1里输入行数。不是所有行数。
我不懂电脑 2012-07-04
  • 打赏
  • 举报
回复
int n = 0;
for (int i=0; i <Memo-> Lines-> Count; i++)
{
s = Memo-> Lines-> Strings[i];
if (s[1] == '( ' && s[s.Length()]== ') ')
{
RichEdit-> SelStart = n;
RichEdit-> SelLength = n + s.Length();
RichEdit-> SelAttributes = ...
}
n += s.Length();
}
//基本是这样,没有调试。
lzh280 2012-07-04
  • 打赏
  • 举报
回复

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int LineNo = Edit1->Text.ToIntDef(1);

RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX, LineNo - 1, 0);
RichEdit1->SelLength = RichEdit1->Lines->Strings[LineNo - 1.Length();

if(ColorDialog1->Execute())
{
RichEdit1->SelAttributes->Color = ColorDialog1->Color;
}
}
lzh280 2012-07-04
  • 打赏
  • 举报
回复
[code=void] __fastcall TForm1::Button1Click(TObject *Sender)
{
int LineNo = Edit1->Text.ToIntDef(1);

RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX, LineNo - 1, 0);
RichEdit1->SelLength = RichEdit1->Lines->Strings[LineNo - 1.Length();

if(ColorDialog1->Execute())
{
RichEdit1->SelAttributes->Color = ColorDialog1->Color;
}
}][/code]
lzh280 2012-07-04
  • 打赏
  • 举报
回复
[code=void] __fastcall TForm1::Button1Click(TObject *Sender)
{
int LineNo = Edit1->Text.ToIntDef(1);

RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX, LineNo - 1, 0);
RichEdit1->SelLength = RichEdit1->Lines->Strings[LineNo - 1.Length();

if(ColorDialog1->Execute())
{
RichEdit1->SelAttributes->Color = ColorDialog1->Color;
}
}][/code]
lianrouwupan 2012-07-04
  • 打赏
  • 举报
回复
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString a=Edit1->Text;
int i=StrToInt(a);


AnsiString s=RichEdit1->Lines->Strings[i];
if(ColorDialog1->Execute())

RichEdit1->SelStart=0;
RichEdit1->SelLength=s.Length();
RichEdit1->SelAttributes->Color=ColorDialog1->Color;

}

我这样写,为什么永远都是第一行上颜色,高手指教下。

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧