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의 처음 시작이 맞아떨어지지가 않네요..
뉴라인 때문인지, 뭐때문인지... 잘 모르겠습니다...
혹시 아시는 분은 알려주시면 정말 감사하겠습니다..
그럼, 좋은 밤 되세요.. 꾸벅..
혹시 왜 그런지 아시는 분 계신가요?
아래 님은 너무 당연하다는 듯이 말씀하시는데... 잘 모르겠네요.. ㅜ.ㅜ
혹시 아시는 분은 알려주시면 감사하겠습니다..
=================
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 한 부분은 이해하시죠?
====================================