想写个代码着色的记事本,大部分的问题在Delphi精要里得到答案,不过还是有个问题就是如何给 // 这种形式的注释着色知道如何定位 // 的位置,但不知道如何获得注释结束时的位置 ?

解决方案 »

  1.   

    http://blog.csdn.net/y___y/archive/2006/11/21/1402198.aspx
      

  2.   

    我用的是RichEdit ,那代表行最后一个字符的属性是什么 ?
      

  3.   

    我用的是RichEdit ,那代表行最后一个字符的属性是什么 ?
    --------------------------------------------------------Length(字符串) == 字符串的最后一个字符(#0前的那个字符)的下标.
    RichEdit.Lines[X] 就是一个字符串.或者,你直接用MaxInt这个常量就行了.
      

  4.   

    根据提示做了,还是不行,我用Edit来显示最后那个字符的位置,总之 -1希望能给详细点的提示,谢谢 就是如何获得 // 注释符号所在行的最后那个字符的位置
      

  5.   

    Length(RichEdit.Lines[I]);这个应该没问题吧?
      

  6.   

    iBeginPos := RichEdit1.FindText(
                      '//',
                      0,
                      Length(RichEdit1.Lines.Text),
                      [stMatchCase]);  if iBeginPos>=0 then
      begin
        RichEdit1.SelStart := iBeginPos;    iEndPos := RichEdit1.FindText(
                      #13#10,
                      iBeginPos,
                      Length(RichEdit1.Lines.Text),
                      [stWholeWord,stMatchCase]);
        RichEdit1.SelLength := iEndPos-iBeginPos;
        RichEdit1.SelAttributes.Color := clBlue;  end;
      

  7.   

    sdzeng(大头鸟)  ,你给代码运行后是 // 后全都着色了,并不只是 // 所在行着色应该如何修改呢  ? 我完全没有头绪
      

  8.   

    :( 
    我只是演示了一下怎么找到换行符而已
    你不是大部分工作都搞定了吗?去Google搜索一下 “richedit 代码着色”
      

  9.   

    和我碰到的问题一样,也没解决,有人用Raize控件有做的,可我不想用第三方控件
      

  10.   

    直接
    if (字符=#13)or(字符=#10)then //#13 #10分别为回车和换行符
    最后位置:=字符位置