C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[52786] Re:도움말씀 정말 감사드립니다, 오늘의 팁으로 강추해요^-^
★래미★ [jackey9] 2309 읽음    2008-03-19 15:49
정말 감사드려요
많은 도움되었구요^^
즐겁고 편안한 하루되세요~~~~~


장성호 님이 쓰신 글 :
: 공백라인도  전체 길이가 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);
: : : }

+ -

관련 글 리스트
52768 TMemo에서 CaretPos 사용시 문제가... ★래미★ 2160 2008/03/19
52780     답변 감사합니다 ★래미★ 2022 2008/03/19
52783         Re:답변 감사합니다 장성호 2631 2008/03/19
52786             Re:도움말씀 정말 감사드립니다, 오늘의 팁으로 강추해요^-^ ★래미★ 2309 2008/03/19
52771     Re:TMemo에서 CaretPos 사용시 문제가... - 원인은? 장성호 2677 2008/03/19
52769     Re:TMemo에서 CaretPos 사용시 문제가... 아루스 2220 2008/03/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.