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
[4215] Re:2169 번 답변해주신것에대한 질문입니다. 임프님 꼭 보아
박지훈.임프 [cbuilder] 3210 읽음    2000-10-12 00:00
김갑철 님이 쓰신 글 :
: 답변 정말 감사 드립니다.
: 그런데 알려 주신 방법은 이미 다 해본 것이라서요.
: 좀 세련된 방법은 없는지 알고 싶었습니다.
:
: 단지 제가 만들고 있는 것이 에디터인데요 디버그를 위한 영역이 필요한 것입니다.
: 예를 들면 BCB 의 에디터를 보변 소스작성 부분바로 옆에 브레이크포인터를 표시하게위한
: PANEL 과 같은 영역이 있지 않습니까?
: 두 개체가 전부 SCROLLBOX 안에 들어 있는 것 처럼 보이는데요.
: 세로로 스크롤 할때는 같이 움직이는데 가로로 스크롤할때는 디버그를 위한 PANEL 같은 것은
: 그냥 가만히 있지 않습니까?
: 전혀 깜박임도 없는데요.
: 이런 것을 흉내 낼수는 없겠는지요?
: 이런 똑같은 에디터를 다른 회사의 제품에서도 본적이 있는데요.
: 그렇다면 일반 적인 방법으로도 구현이 가능한 것이 아닐까요?
:
: BCB 의 경우는 어떻게 처리한 것인지요?
: 알고 계시다면 조언 부탁드립니다.
:


임펠리테리입니다.

적어도 빌더의 에디터는 스크롤박스를 쓴 것이 아닙니다. 그동안 사용하면서 느끼기로는, 빌더의 에디터는 메모컨트롤도, 리치에디트 컨트롤도 아닙니다. 이런 메모나 리치에디트는 원래 Win32 공용 컨트롤을 vcl로 포장한 것에 불과하기 때문에 기본적인 동작이 달라질 수 없는데, 빌더의 에디터는 동작이 확연히 다른 것으로 봐서 아마도 순수하게 만들어낸 컨트롤인 듯 합니다. 예를 들어, 빌더 에디터는 세로 블럭과 같은 기능을 지원하는데, 메모나 리치에디트 컨트롤을 상속받아서 이런 기능을 만들 수는 없습니다.

완전히 새로 에디터를 만드는 것이 아주 복잡한 작업이기는 합니다만, 윈도우즈 운영체계가 득세하기 전엔 모든 에디터 프로그래머들과 마찬가지로 볼랜드에서도 자체적으로 에디터를 만들었었으니까 볼랜드에겐 아주 어려운 일은 아니었을 거라고 생각합니다.

약간 다른 이야기가 될 수 있습니다만.. 리치에디트에서 이정도는 할 수 있습니다. 리치에디트를 하나 폼에 놓고, 다음과 같은 코드를 추가해보세요.
TRect R = Rect(20, 0, RichEdit1->Width, RichEdit1->Height);
SendMessage(RichEdit1->Handle, EM_SETRECT, 0, (long)&R);
리치에디트의 왼쪽에 20픽셀 만큼의 에디트되지 않는 영역이 생깁니다. 재미있기는 합니다만, 이 영역에 무언가를 그려넣을 수 있는 방법이 없기 때문에 도움이 되진 않을 거구요. 리치에디트의 한계가 이정도군.. 하고 생각하시면 되겠네요.

그럼 참고하시길...

+ -

관련 글 리스트
4192 2169 번 답변해주신것에대한 질문입니다. 임프님 꼭 보아 주세요. 김갑철 3008 2000/10/09
4215     Re:2169 번 답변해주신것에대한 질문입니다. 임프님 꼭 보아 박지훈.임프 3210 2000/10/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.