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
[18624] Re:역상시키는 방법에 대해서 궁금합니다.
유영인 [Chris] [cuperido] 949 읽음    2002-05-17 15:39
SelStart와 SelLength 를 쓰시면 가능할것 같습니다. SelStart는, 글자수를 기준으로 해서 어디서부터 역상이 시작되는지, 그리고 SelLength는 몇문자가 역상인지 지정해주는 프로퍼티 입니다. 실은, 우리가 볼때는 줄로 나뉘어 진것처럼 보이지만, RichEdit는 하나의 긴 문자열을 엔터 문자까지 함께 가지고 있다고 생각하시면 됩니다.

가장 문제가 되는건, 각 줄이 몇번째 문자부터 시작되는지를 알아내는데가 문제인데요. 이건 메세지를 보내서 그 줄의 시작 문자점을 받아올 수 있습니다.

아래 소스는 버튼을 클릭하면 아래에 define 되어있는 줄을 (현재는 3번째 줄) 역상시키는 예제입니다.


//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{

#define TARGET_LINE 3

int               itSelStart;


// 현재 줄이 몇번째 문자부터 시작되는지 알아냄
itSelStart = RichEdit1->Perform(EM_LINEINDEX, TARGET_LINE - 1, 0);

// 포커스를 옮기지 않으면, 범위 설정이 되지 않음
RichEdit1->SetFocus();

RichEdit1->SelStart  = itSelStart;
RichEdit1->SelLength = RichEdit1->Lines->Strings[TARGET_LINE - 1].Length();

}
//---------------------------------------------------------------------------


이용주 님이 쓰신 글 :
: 글자위에서 더블클릭을 하게 되면 그 글자만 선택된것 처럼 보입니다.
: RichEdit에서 이러한 기능을 사용해서 한줄이 모두 선택된것 처럼 역상처리를 하는 방법을 알고 싶습니다. 마치 한줄을 모두 드래고 해서 선택한것과 같은 거지요..
: 아시는 분들의 답변 부탁드립니다. 넘 초보라서 죄송합니다. 그럼 이만..

+ -

관련 글 리스트
18622 역상시키는 방법에 대해서 궁금합니다. 이용주 758 2002/05/17
18624     Re:역상시키는 방법에 대해서 궁금합니다. 유영인 [Chris] 949 2002/05/17
18626         Re:Re:역상시키는 방법에 대해서 궁금합니다. 이용주 771 2002/05/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.