|
r->CaretPos=TPoint(0,y); 에서 에러가 나네여..
방태윤 님이 쓰신 글 :
: 이걸로 해 보세요..
: void change_line_color(TRichEdit*r,int y,TColor c) // y=0 이 첫줄
: {
: if(y>r->Lines->Count-1)return;
: r->CaretPos=TPoint(0,y);
: r->SelLength=r->Lines->Strings[y].Length();
: r->SelAttributes->Color=c;
: }
:
:
:
: 초보 님이 쓰신 글 :
: : RichEdit에서 라인의 위치를 찾아 그부분만 폰트 색깔 변하게 하는 방법중에서
: : 어떤 분의 답변 중에 하나를 그대로 사용해 보았습니다..
: : 그런데..
: : void ChageColor(...)
: : {
: : ....
: : char* s = (char*)malloc(sizeof(BYTE) *100);
: : Form1->RichEdit->Lines->Add(" --------------------");
: : Form1->RichEdit->SelAttributes->Color = clGreen;
: : wsprintf(s," 제목...Software");
: : //Form1->RichEdit->Lines->Add(s); // 1.
: : Form1->RichEdit->Lines->Strings[Line] = s; // 2
: :
: : Form1->RichEdit->SelAttributes->Color = clBlack;
: : Form1->RichEdit->Lines->Add(" --------------------");
: : Line = Line + 4;
: : free(s);
: : ...
: : }
: :
: : 위와 같이 1과 같이 하면 잘동작하는데..2와 같이 하면 처음 동작시 한번만 글자가 푸른색으로 나타나고
: : 다음부터는 아예 글자가 생략되는군여,,
: : 왜 저런 현상이 발생하죠?
: : 결과)
: : --------------------
: : 제목...Software --> 푸른색
: : --------------------
: : --------------------
: : --------------------
: : --------------------
: : --------------------
: : --------------------
: : --------------------
: :
: : 위 예제는 그냥 만들어 본거지만 원래는 Line의 위치를 위 함수를 호출할때 넘겨줍니다.
: :
|