易语言:怎么让超级编辑框中的文本,逐行变色。
.支持库 iext2
‘粘贴到易语言里 调用’指定文本颜色 (#红色, “你好:”) 就好了
.子程序 指定文本颜色
.参数 颜色值, 整数型
.参数 欲设颜色文本, 文本型
.局部变量 格式, 字符格式
.局部变量 位, 整数型
.局部变量 字符数, 整数型
位 = 超级编辑框1.寻找 (, , , 欲设颜色文本)
字符数 = 取文本长 (欲设颜色文本)
.判断循环首 (位 > -1)
超级编辑框1.起始选择位置 = 位
格式 = 超级编辑框1.取选择区字符格式 ()
格式.文本颜色 = 颜色值
超级编辑框1.被选择字符数 = 字符数
超级编辑框1.置选择区字符格式 (格式)
位 = 超级编辑框1.寻找 (位 + 1, , , 欲设颜色文本)
.判断循环尾 ()
.子程序 取文本长, 整数型
.参数 文本, 文本型
.局部变量 i, 整数型
.局部变量 长度, 整数型
i = 1
.判断循环首 (i < 取文本长度 (文本))
.判断开始 (取代码 (文本, i) < 0)
i = i + 2
.默认
i = i + 1
.判断结束
长度 = 长度 + 1
.判断循环尾 ()
返回 (长度)
.支持库 iext2
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕
置随机数种子 ()
.子程序 _按钮1_被单击
.局部变量 POS
.局部变量 格式, 字符格式
超级编辑框1.起始选择位置 = 0
.计次循环首 (超级编辑框1.取行数 (), POS)
POS = POS - 1
格式.文本颜色 = 取颜色值 (取随机数 (0, 255), 取随机数 (0, 255), 取随机数 (0, 255))
超级编辑框1.起始选择位置 = 超级编辑框1.取行首位置 (POS)
超级编辑框1.被选择字符数 = 取文本长度 (超级编辑框1.取行文本 (POS))
'输出调试文本 (超级编辑框1.取行文本 (POS))
超级编辑框1.置选择区字符格式 (格式)
.计次循环尾 ()
' 第一种情况
' 先将文本放到 超级编辑框 中,然后用以上代码一行一行改变
.子程序 _按钮2_被单击
.局部变量 POS
.局部变量 格式, 字符格式
.局部变量 文本, 文本型
.局部变量 文本组, 文本型, , "0"
文本 = “文本啊1” + #换行符 + “文本啊2” + #换行符 + “文本啊3” + #换行符 + “文本啊3”
文本组 = 分割文本 (文本, #换行符, )
.计次循环首 (取数组成员数 (文本组), POS)
格式.文本颜色 = 取颜色值 (取随机数 (0, 255), 取随机数 (0, 255), 取随机数 (0, 255))
超级编辑框1.置选择区字符格式 (格式)
超级编辑框1.被选择文本 = 文本组 [POS] + #换行符
.计次循环尾 ()
' 第二种情况
' 在添加文本的时候改变颜色
帅哥,你有自己运行一下吗?第一种情况
代码都经过反复测试才发上来的,第一种情况试过中英混合没问题,但你若说折行的问题,抱歉我无法解决,只能根椐它自己的行改色,超编太蛋疼了它的字符计算方式我无法捉摸~~!!!
其实这个问题在回答前就尝试过,终无法解决,以下是我的尝试代码!
.版本 2.支持库 iext2
.子程序 _按钮3_被单击
.局部变量 POS
.局部变量 Size, 整数型
.局部变量 Seek, 整数型
.局部变量 格式, 字符格式
.局部变量 内容, 文本型
' 根椐换行符改色
Size = 超级编辑框1.取文本长度 ()
超级编辑框1.起始选择位置 = 0
内容 = 超级编辑框1.内容
.判断循环首 (真)
Seek = 寻找文本 (内容, #换行符, Seek + 1, 假)
' 输出调试文本 (Seek)
.如果真 (Seek = -1)
跳出循环 ()
.如果真结束
格式.文本颜色 = 取颜色值 (取随机数 (0, 255), 取随机数 (0, 255), 取随机数 (0, 255))
超级编辑框1.被选择字符数 = Seek - 超级编辑框1.起始选择位置 - 1
' 输出调试文本 (取文本中间 (内容, 超级编辑框1.起始选择位置 + 1, 超级编辑框1.被选择字符数 - 1))
超级编辑框1.置选择区字符格式 (格式)
超级编辑框1.起始选择位置 = Seek '- POS
输出调试文本 (超级编辑框1.起始选择位置)
'POS = POS + 2
.判断循环尾 ()