정말 감사드려요
많은 도움되었구요^^
즐겁고 편안한 하루되세요~~~~~
장성호 님이 쓰신 글 :
: 공백라인도 전체 길이가 65536 넘어가면 같은 현상이 나옵니다.
:
: 완벽하지 않지만 아래 함수를 이용하면 CaretPos값을 얻을수가 있을것 같습니다.
:
: TPoint __fastcall GetMemoCaretPos(TMemo *Memo)
: {
: TPoint oPt=Memo->CaretPos;
: if(oPt.x>=0)return oPt;
:
: TPoint pt=Point(0,0);
: int iSelStart=Memo->SelStart;
: int iLen=0;
:
: iSelStart=iSelStart+Memo->SelLength;
: bool bFind=false;
: for(int i=0;i<Memo->Lines->Count;i++)
: {
: iLen+=Memo->Lines->Strings[i].Length();
: if(iLen>=iSelStart)
: {
: pt.y=i;
: pt.x=iSelStart-iLen+Memo->Lines->Strings[i].Length();
: bFind=true;
: break;
: }
: iLen+=2;
: }
: if(!bFind)
: {
: pt.x=0;
: pt.y=Memo->Lines->Count;
: }
: return pt;
: }
:
: //----------------------------------------------------------
: void __fastcall TForm1::Button2Click(TObject *Sender)
: {
: TPoint pt=GetMemoCaretPos(Memo1);
: Label2->Caption=IntToStr(pt.x )+","+ IntToStr(pt.y);
: }
:
:
: 그리고 RichEdit문제는 제가 참고하라고 링크해놓은 곳에 가보면
: 어떻게 하는지 적혀 잇습니다.
:
:
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=2
:
: 그럼..
:
:
:
: ★래미★ 님이 쓰신 글 :
: : 장성호님 좋은 답변 감사합니다
: : RichEdit로 해보고 다시 답올릴께요~~
: : 혹 나중에라도 해결방법 생각나심 메일 부탁드릴께요^^ㅎㅎㅎ
: : jackey9@nate.com
: : 즐거운 오후 되세요~~~
: : ==========
: : 추가 답변
: : ==========
: : RichEdit로 했는데 첨부된 파일 내용을 모두 복사해서 붙여넣으면
: : 아예 1795줄 이상 붙여지질 않네요 ㅠㅠ 헐~
: : 다른 Edit를 구해서 써야될지,,,,
: :
: :
: :
: :
: : 허정주님 답변 감사합니다
: : 공백라인으로는 문제가 없네요
: : 첨부된 파일 이상을 Editing 할건데,,
: : 파일 내용을 붙여넣으면 Line, Col이 이상해지네요--;
: : 그리고 KeyPress 이벤트에도 한계가 있더라구요
: : 예를 들어 방향키, 마우스다운 등은 안먹힌다던가--;
: : 전 OnMouseMove, OnChange에 같이 이벤을 설정했더니 괜찮은거 같아서요~
: : 좋은 방법 있으심 알려주세요^0^
: :
: :
: :
: :
: :
: :
: : ★래미★ 님이 쓰신 글 :
: : : 메모에서 커서 이동에 따라 상태바에 현재 위치를 표시하고 싶은데요
: : : 찾아보니 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);
: : : }