안녕하세요. 천리안 프로그래머 포럼 C++Builder 담당 임펠리테리입니다.
리치에디트에서 현재 선택된 영역의 속성을 알아오려면 TRichEdit::SelAttributes
프로퍼티를 읽어오면 됩니다. 원하시는대로 색깔을 알아보려면 TTextAttributes형인
SelAttributes의 Color 속성을 읽어오면 되죠.
말씀하신대로 리치에디트의 OnSelectionChange 이벤트의 핸들러를 작성하신 다음,
위에서 말한것처럼 컬러값을 읽어오면 되는데.. 일단, 아래와 같이 해봅시다.
void __fastcall TForm1::RichEdit1SelectionChange(TObject *Sender)
{
Panel1->Color = RichEdit1->SelAttributes->Color;
}
이런 방식으로 하면 됩니다만, 넘어오는 컬러의 값은 TColor 값이므로 이것을
어떻게 저번에 만들었던 콤보박스에 다 매칭을 시키느냐..? 는... ^^;;;
이것은 유저인터페이스의 문제입니다. TColor형은 원래 int 형에 해당하므로
2억가지의 값을 가질 수 있죠. 리치에디트에서 16색만 사용했다는 보장이 있다면
별개의 문제입니다만.. 콤보박스에 2억개의 아이템...? 뜨악.입니다. ^^
아무래도, 적당한 수준에서 알아서 처리하심이..
그럼 참고하시길...
임펠리테리 박지훈이었습니다.
(cbuilder, cbuilder@thrunet.com)
|