首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • richedit特定文本变色定位问题
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-27 11:17:43 楼主
    我用richedit.text,我想再有特定文本下变色,但是定位有问题,请大家帮我看看
    调用语句
    postlist:=getposts(trim(edit1.Text),richedit.Text);
                for i:=0 to postlist.Count-1  do
                  begin
                    richedit.SelStart  := strtoint( postlist[i])-1;
                    richedit.SelLength  :=  length((trim(edit1.Text)));
                    richedit.SelAttributes.Color  :=  clRed;
                  end;

    function  getposts(sub:string; s:string):tstringlist;
    var list:tstringlist;  //存储位置
        len:integer;
        midstring:string;
        position: integer;
        subNumber:integer;//;记录被减去的长度
        sublong:integer;
        i:integer;
    begin
        list:=tstringlist.Create;
        //思想为找到子字串定位,减去找到位置以前的,在剩下的串中继续,直到完
        subNumber:=0; //被减去的长度初始
        midstring:=s;
        len:=length(sub);
        while pos(sub,midstring) <>0 do
        begin
        position:=pos(sub,midstring);
        list.Add(inttostr(position+subNumber));
                      subNumber:=position+len-1;//减去长度
        sublong:=length(midstring)-subNumber; //减去后的长度
        midstring:= copy(midstring,subNumber+1,sublong)
        end;
        result:=list;
    end;
    大家帮帮忙,在richedit.text中因为有格式,所以会出现'#$D#$A',是不是这个引起的原因

    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dawugui
    • 等级:
    发表于:2007-11-27 11:22:301楼 得分:0
    这个应该发错地方了.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-07 15:58:272楼 得分:0
    我觉得你的实现方法有问题,你不应该全部找完后(好不用存入数据),与去改变颜色.而是从文本开头,找一个改一个.
    你的帖子应该放在BCB中
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved