社区
C++ Builder
帖子详情
如何改变Memo中特定字符的颜色?
zhaoxinghan
2007-07-03 11:11:38
想让某几个字符显示红色,其他都为黑色,应该怎么做?
...全文
249
11
打赏
收藏
如何改变Memo中特定字符的颜色?
想让某几个字符显示红色,其他都为黑色,应该怎么做?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhaoxinghan
2007-07-07
打赏
举报
回复
太强了,虽然看了半天有些不太明白,但是还是谢谢javpp大大,明天试试看,后天结帖。
laowang2
2007-07-06
打赏
举报
回复
不错
sfengnet
2007-07-05
打赏
举报
回复
RichEdit1->SelStart=0;
RichEdit1->SelLength=100;
RichEdit1->SelAttributes->Color=clRed;
Javpp
2007-07-05
打赏
举报
回复
OldCap = Form->Caption;
RichE->Font->Name = "Courier New";
RichE->Font->Size = 10;
if (RichE->WordWrap)
{
RichE->WordWrap = false;
}
RichE->SelectAll ();
RichE->SelAttributes->Color = clBlack;
RichE->SelAttributes->Style = TFontStyles ();
RichE->SelStart = 0;
if (InVisible)
{
RichE->Visible = false;
Form->Caption = "Executing Code Coloring...";
}
BackC = clWhite;
FontC = clBlack;
C1 = clBlack;
C2 = clBlack;
C3 = clBlack;
strC = clBlue;
strC1 = clSilver;
if (Style == "Twilight")
{
BackC = clBlack;
FontC = clWhite;
C1 = clLime;
C2 = clSilver;
C3 = clAqua;
strC = clYellow;
strC1 = clRed;
}
else if (Style == "Default")
{
BackC = clWhite;
FontC = clBlack;
C1 = clTeal;
C2 = clMaroon;
C3 = clBlue;
strC = clMaroon;
strC1 = clSilver;
}
else if (Style == "Ocean")
{
BackC = 0x00FFFF80;
FontC = clBlack;
C1 = clMaroon;
C2 = clBlack;
C3 = clBlue;
strC = clTeal;
strC1 = clBlack;
}
else if (Style == "Classic")
{
BackC = clNavy;
FontC = clYellow;
C1 = clLime;
C2 = clSilver;
C3 = clWhite;
strC = clAqua;
strC1 = clSilver;
}
else
{
T = "{" + Style + " = Invalid Style [Default,Classic,Twilight,Ocean] ONLY! }";
RichE->Lines->Insert (0,T);
StartPos = 0;
ToEnd = RichE->Text.Length () - StartPos;
FoundAt = RichE->FindText (T, StartPos, ToEnd, TSearchTypes () << stWholeWord);
RichE->SelStart = FoundAt;
RichE->SelLength = T.Length ();
RichE->SelAttributes->Color = clRed;
RichE->SelAttributes->Style = RichE->SelAttributes->Style << fsBold;
StartPos = 0;
ToEnd = RichE->Text.Length () - StartPos;
FoundAt = RichE->FindText ("ONLY!", StartPos, ToEnd, TSearchTypes () << stWholeWord);
RichE->SelStart = FoundAt;
RichE->SelLength = 4;
RichE->SelAttributes->Color = clRed;
RichE->SelAttributes->Style = RichE->SelAttributes->Style << fsBold << fsUnderline;
}
RichE->SelectAll ();
RichE->Color = BackC;
RichE->SelAttributes->Color = FontC;
for (i = 0; i <= 9; i ++)
{
StartPos = 0;
ToEnd = RichE->Text.Length () - StartPos;
FoundAt = RichE->FindText (IntToStr(i), StartPos, ToEnd, TSearchTypes () << stWholeWord);
while (FoundAt != -1)
{
RichE->SelStart = FoundAt;
RichE->SelLength = IntToStr (i).Length ();
RichE->SelAttributes->Color = C1;
RichE->SelAttributes->Style = TFontStyles ();
StartPos = FoundAt + IntToStr (i).Length ();
FoundAt = RichE->FindText (IntToStr (i), StartPos, ToEnd, TSearchTypes () << stWholeWord);
}
}
for (i = 0; i <= 20; i ++)
{
StartPos = 0;
ToEnd = RichE->Text.Length () - StartPos;
FoundAt = RichE->FindText (CodeC1[i], StartPos, ToEnd, TSearchTypes ());
while (FoundAt != -1)
{
RichE->SelStart = FoundAt;
RichE->SelLength = CodeC1[i].Length ();
RichE->SelAttributes->Color = C2;
StartPos = FoundAt + CodeC1[i].Length ();
FoundAt = RichE->FindText (CodeC1[i], StartPos, ToEnd, TSearchTypes ());
}
}
for (i = 0; i <= 44; i ++)
{
StartPos = 0;
ToEnd = RichE->Text.Length () - StartPos;
FoundAt = RichE->FindText (CodeC2[i], StartPos, ToEnd, TSearchTypes () << stWholeWord);
while (FoundAt != -1)
{
RichE->SelStart = FoundAt;
RichE->SelLength = CodeC2[i].Length ();
RichE->SelAttributes->Color = C3;
RichE->SelAttributes->Style = RichE->SelAttributes->Style << fsBold;
StartPos = FoundAt + CodeC2[i].Length ();
FoundAt = RichE->FindText(CodeC2[i], StartPos, ToEnd, TSearchTypes () << stWholeWord);
}
}
StartPos = 0;
FoundAt = RichE->FindText ('\'', StartPos, RichE->Text.Length (), TSearchTypes ());
while (FoundAt != -1)
{
RichE->SelStart = FoundAt;
StartPos = FoundAt + 1;
FoundAt = RichE->FindText('\'', StartPos, RichE->Text.Length (), TSearchTypes ());
if (FoundAt != -1)
{
RichE->SelLength = (FoundAt - RichE->SelStart) + 1;
RichE->SelAttributes->Style = TFontStyles ();
RichE->SelAttributes->Color = strC;
StartPos = FoundAt + 1;
FoundAt = RichE->FindText ('\'', StartPos, RichE->Text.Length (), TSearchTypes ());
}
}
StartPos = 0;
FoundAt = RichE->FindText ('{', StartPos, RichE->Text.Length (), TSearchTypes ());
while (FoundAt != -1)
{
RichE->SelStart = FoundAt;
StartPos = FoundAt + 1;
FoundAt = RichE->FindText ('}', StartPos, RichE->Text.Length (), TSearchTypes ());
if (FoundAt != -1)
{
RichE->SelLength = (FoundAt - RichE->SelStart) + 1;
RichE->SelAttributes->Style = TFontStyles ();
RichE->SelAttributes->Color = strC1;
StartPos = FoundAt+1;
FoundAt = RichE->FindText ('{', StartPos, RichE->Text.Length (), TSearchTypes ());
}
}
if (InVisible)
{
RichE->Visible = True;
Form->Caption = OldCap;
}
RichE->SelStart = RichE->Text.Length ();
}
//---------------------------------------------------------------------------
Javpp
2007-07-05
打赏
举报
回复
20分太少啦,呵呵, 我这里有一个函数, 你可以用, 但是用的TRichEdit, 不是Memo
void __fastcall TForm1::CodeColors (TForm* Form, String Style, TRichEdit* RichE, bool InVisible )
//Style: [Default,Classic,Twilight,Ocean]
{
//·?o?
String CodeC1[20] = { "#", "$", "(", ")", "*",
",", ".", "/", ":", ";",
"[", "]", "{", "}", "<",
">", "-", "=", "+", "@"
};
//±£á?×?
String CodeC2[44] = { "and",
"as",
"begin",
"case",
"char",
"class",
"const",
"downto",
"else",
"end",
"except",
"finally",
"for",
"forward",
"function",
"if",
"implementation",
"interface",
"is",
"nil",
"or",
"private",
"procedure",
"public",
"raise",
"repeat",
"string",
"to",
"try",
"type",
"unit",
"uses",
"var",
"while",
"external",
"stdcall",
"do",
"until",
"array",
"of",
"in",
"shr",
"shl",
"cos",
};
long FoundAt;
int StartPos, ToEnd, i;
String OldCap,T;
TColor FontC, BackC, C1, C2, C3, strC, strC1;
zhaoxinghan
2007-07-04
打赏
举报
回复
能给一个TRichEdit的例子么?
比如说让某一行输出的字符串为红色?
constantine
2007-07-04
打赏
举报
回复
TRichEdit
cczlp
2007-07-04
打赏
举报
回复
TRichEdit或第三方组件
i_love_pc
2007-07-04
打赏
举报
回复
Memo好像不能满足你的要求,试试其他控件,比如richedit
zhaoxinghan
2007-07-04
打赏
举报
回复
顶一下
jacknes009
2007-07-04
打赏
举报
回复
Memo好像不能满足你的要求,试试其他控件
用TRichEdit试试
Delphi开发技巧之-VCL
ListView 排序 Stringgrid内使用回车键代替Tab键 TListBox内显示分栏 TListBox每一行显示交互的
颜色
T
Memo
内光标位置根据鼠标移动 T
Memo
自动卷动 TRichEdit卷到
特定
位置 TRxRichEdit内插入图像 TStringGrid
中
插入、删除一行 TStringGrid保存和装载 TTreeview控件显示粗体节点 TWebBrowser
中
调用“查找”对话框 为Listview栏添加双击事件 为工具栏的TToolButton设置新的索引 仅通过Classname创建和管理任意窗体 从RichEdit取Rtf格式 从TListBox
中
拖放项目到TRichEdit 从一个TRichedit复制格式Rtf文本到其它 使用CustomSort方法排序TListView 使用DBGrid字段队列同步列标题队列 使用Interfaces和TInterfaceList 使用TRichEdit存储大于64K数据 使用代码移动StringGrid的行和列 使用圆形角显示控件 使用类名显示窗体 保存 装载TCheckListbox值 保存和装载TListView 保存和装载TTreeView 允许TDBGrid栏调整大小但防止移动 克隆控件 克隆窗体 列出控件的所有属性和事件 创建可编辑ListBox 删除Listbox的所有选定项目 删除stringlist
中
重复项目 删除TStringGrid
中
的列 动画窗体 取ComboBox List句柄 取TListview内所有选定项目 取TShellListView
中
选定文件的路径 取列举值的名称 在combobox
中
实现autocomplete 在DBGrid
中
使用回车键
改变
到下一个段 在listbox内列出所有目录、文件和驱动器 在Listbox内显示水平滚动条 在
memo
中
实现UNDO 在RichEdit内搜索文本并选择它 在StringGrid内使用Combobox作为编辑器 在StringGrid单元
中
画不同
颜色
在TComboBox
中
显示栏 在TComboBox内绘制位图 在TDateTimePicker内显示星期几 在TFileListBox内显示多列 在TListBox
中
创建彩色项目 在TListBox内拖拽 在TListbox内绘制位图 在TListview内执行二进制搜索 在TListView内拖拽多个项目 在TListView列
中
创建进度条 在T
Memo
内查看和编辑MS-DOS文本 在TPageControl拖拽Tabs 在TPrintDialog上放置定制控件 在TRichEdit内使用上标和下标 在TRichEdit内使用超链接 在TRichEdit内文本使用不同的下划线样式 在TRichedit内设置段落行距 在TStringGrid内删除一行 在TStringGrid实现OnColumnClick事件 在自己的控件显示信息 复制Listbox项目到剪贴板 失效TTreeview的tooltips 定制TDateTimePicker的格式 居
中
控件 屏蔽在EditBox内按回车键的都都声 强制在TEdit内输入 排序StringGrid 搜索和替换RichEdit
中
文本 搜索和选定TListBox的项目
改变
TDBGrid的DefaultRowHeight
改变
TRichEdit内选定文本的背景
颜色
改变
TStringGrid内选定单元的
颜色
改变
标准对话框
改变
状态栏字体样式
改变
窗体上所有控件的属性
改变
进度条
颜色
根据StringGrid列内容自动调整大小 根据列排序TStringGrid 检查Stringgrid
中
指定单元示范选定 检查T
Memo
能否取消操作 检查TreeView是否完全展开或折叠 检查TStringGrid是否有滚动条 添加接口对象到list 清空StringGrid的所有单元 移动listbox项目 移动TListView项目 移动TRichEdit内光标到指定位置 聚焦TDBGrid某些单元 自动打开TDateTimePicker 自定义
Memo
边界 获取TRichEdit
中
鼠标指针下面的字 访问TRadioGroup的控件 调整TComboBox下拉列表的宽度 转换Editbox的首
字符
为大写 转换TEdit
中
每个词的首字母为大写 输出TStringGrid到TListView 运行时创建TButtons队列 运行时创建控件 运行时创建菜单项 运行时替换控件 返回TTreeView内
字符
串路径 防止在TEdit内剪贴、复制、粘贴 防止用户调整TListView栏大小 限制TEdit的输入 隐藏TListView滚动条 隐藏最小化MDI子窗口
颜色
Combo Box 验证TEdit
中
输入的是数字
chatgpt赋能python:Python如何返回
字符
串:从基础概念到高级技巧
在Python
中
,
字符
串是指由
字符
组成的有序集合,用于表示文本。name = 'Alice' # 单引号address = "123 Main St" # 双引号
memo
= '''这是一个长文本,包含多行文字。''' # 三引号在Python
中
,
字符
串是不可变对象,也就是说,一旦创建就不能修改。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT。
C# RichTextBox的使用方法
RichTextBox的使用方法RichTextBox.Find方法RichTextBox控件不仅允许输入和编辑文本,同时还提供了标准 TextBox 控件未具有的、更高级的指定格式的许多功能。语法:RichTextBox说明:RichTextBox 提供了一些属性,对于本控件文本的任何部分,用这些属性都可以指定格式。为了
改变
文本的格式,首先要选定它。只有选定的文本才能赋予
字符
和段落格式。使用这些
Delphi试题51道
Delphi试题51道1.dbExpress组件访问数据库是通过哪种方式与
特定
的数据库连接的?(C)A. BDEB.其他三项都不是C.DbExpress自己的数据库连接DLLD.ODBC2.在try语句
中
使用多个except语句可以处理多个不同的异常情况。(A)A.错误B.正确3.DWORD,UINT,HResult以及WinAPI函数
中
各种Handle等于Delphi6
中
的哪种数据类型?( A)...
前端代码规范
前端代码规范 随着前端技术的发展,越来越多的人员加入到了这个领域,随之而来的就是,代码写法上的差异,代码维护难度的增加,所以推出前端代码规范,势在必行。 HTML 部分 优先使用 IE 最新版本和 Chrome Frame <!-- 优先使用 IE 最新版本和 Chrome Frame --> <meta http-equiv="X-UA-Compatible" content=...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章