TMemo의 CaretPos는 님이 말한 것처럼 나올수 있습니다.
왜냐하면 TMemo는 Win32의 EDIT를 가지고 만들어 놓은 것이라서
EDIT와 관련된 기능은 EDIT에 종속적일수 밖에 없습니다.
내용은 VCL에 TStrings를 이용했기때문에 더 많이 들어가지만....
EDIT의 최대 길이는 64KByte 즉 65536Byte
TMemo에서 CaretPos의 위치가 65536을 넘어가면 이상한 -값이 나올것입니다.
해결은? 잘모르겠구요
보통 64K이상 될때는 RichEdit를 많이 씁니다.
문론 RichEdit도 한계가 있습니다.
참고
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=2
그럼..
★래미★ 님이 쓰신 글 :
: 메모에서 커서 이동에 따라 상태바에 현재 위치를 표시하고 싶은데요
: 찾아보니 CaretPos 라는 속성이 있네요
: 적용 잘 되는데,, CaretPos.y가 1795줄 이상 넘어가면 다시 1부터 되는데
: 어디가 문제일까요?
: 다음 단계로 넘어가면서 좌표값이 이렇습니다 y=1795 x=-65535
: x,y가 long형 아닌가요? ㅠㅠ
:
:
: void __fastcall TDBEditForm::Memo1MouseMove(TObject *Sender,
: TShiftState Shift, int X, int Y)
: {
: StatusBar1->SimpleText = "Line" + AnsiString(Memo1->CaretPos.y + 1) + " Col" + AnsiString(Memo1->CaretPos.x + 1);
: }
|