Q&A

  • richedit의 selstart를 이용해서 특정 라인을 찾아내려고 하는데요...
richedit의 selstart를 이용해서 특정 라인을 찾아내려고 합니다..

각각의 line줄의 length 정보를 이용하였습니다..

그런데, selstart를 계산하는 방식과 length(한라인)을 계산하는 값이 다르게 나오더군요..

즉, n := 0;
     for i := 0 to i := Line.Count -1 do begin
       richEdit.selstart := n;
       richEdit.selLength := Length(Line[i]);
       richEdit.selAttributes.colo := clBlue;
       richEdit.selLength := 0;
       n := n + Length( Line[i] );
     end;

위와 같이 하면, selstart와 line의 처음 시작이 맞아떨어지지가 않네요..
뉴라인 때문인지, 뭐때문인지... 잘 모르겠습니다...

혹시 아시는 분은 알려주시면 정말 감사하겠습니다..
그럼, 좋은 밤 되세요.. 꾸벅..
1  COMMENTS
  • Profile
    김은주 2004.08.05 02:40
    아래처럼 +2를 해주어야 한다고 하네요..

    혹시 왜 그런지 아시는 분 계신가요?

    아래 님은 너무 당연하다는 듯이 말씀하시는데... 잘 모르겠네요.. ㅜ.ㅜ

    혹시 아시는 분은 알려주시면 감사하겠습니다..

    =================

    var I,SelLength : integer;
    begin
         If key=#13 then
            Begin
            I := 0;
            SelLength := 0;
            For I:=0 To StrToInt(Edit1.Text)-2 Do
                Begin
                SelLength := SelLength + length(Memo1.Lines.Strings[I])+2;
                End;
            Memo1.selstart := SelLength;
            key := #0;
            memo1.setfocus;
            end;
    end;

    selstart 는 첨부터 현재위치까지의 총 글자 합입니다. 그래야 그위치로 갑니.
    위에 보시면 +2 한 부분은 이해하시죠?

    ====================================