|
색상 코드에서 SelAttributes 는 현재 선택된 부분에 대한 속성접근이죠.
글자추가 -> 추가된글자선택 -> 속성변경 순서로 해야 할 듯 합니다.
글자선택은 SelStart, SelLength 쓰시구요
스크롤은 ScrollBy 멤버함수를 이용하시면 됩니다. 위치는 줄수 폰트 높이로 적절히 계산 하셔야겠죠.
pd 님이 쓰신 글 :
: 제가원하는 방식은 참조2의 방식만쓰려합니다. 그렇게된다면
: void __fastcall TLoginForm1::setRichEdit1(TColor Colors, String Msg )
: {
: TColor BeforeColor = RichEdit1->SelAttributes->Color;
: RichEdit1->SelAttributes->Color = Colors;
: RichEdit1->Text=RichEdit1->Text+Msg; // 참조2
: RichEdit1->Refresh();
:
: // 색상 복원
: RichEdit1->SelAttributes->Color = BeforeColor;
:
: // 스크롤이 현위치에 갱신되도록해야함.
: }
: 이렇게 될꺼같네요..
: 그런데 이표현은 적절하지않는 표현입니다.
: 왜냐면 색깔도 안나오고 포커스도 자동으로 맞춰지지않습니다.
: TRichedit->Line->add()를 쓸때는
: RichEdit1->HideSelection =False (또는 인스펙터인가?거기서 맞추거나)
: 이렇게함으로서 포커스를 맞출수있었죠.
:
:
: 아루스 님이 쓰신 글 :
: : 간단한 편법으로 Add 를 한 뒤, Text 변수를 접근 해 마지막 \r\n 을 제거해주면 될 듯합니다 ~_~
: : 색상이 안나오는 건 아마 Text 로 접근하면 {{2{ 머 이런식의 정보들이 포함된 텍스트여서 그런거 같네요.
: : 스크롤도 Add 로 된다면 따로 메세지를 보낼 필요가 없겠죠.
: :
: : pd 님이 쓰신 글 :
: : : void __fastcall TLoginForm1::setRichEdit1(TColor Colors, String Msg )
: : : {
: : : TColor BeforeColor = RichEdit1->SelAttributes->Color;
: : :
: : : RichEdit1->SelAttributes->Color = Colors;
: : :
: : : // RichEdit1->Lines->Add(Msg); // 참조1
: : : RichEdit1->Text=RichEdit1->Text+Msg; // 참조2
: : : //RichEdit1->SelStart=0; // 참조3
: : : RichEdit1->Refresh();
: : :
: : : // 색상 복원
: : : RichEdit1->SelAttributes->Color = BeforeColor;
: : :
: : : // 스크롤이 현위치에 갱신되도록해야함.
: : : }
: : :
: : :
: : : << 의도 >>
: : : 리치에디터로 로그를 만들려고 합니다.
: : : 색상에따라서 오류인지 성공인지 구분하려합니다.
: : : setRichEdit1(clBlack,"사용자 검증 중....");
: : : ....
: : : //사용자맞으면
: : : setRichEdit1(clBlue,"확인\n");
: : :
: : : //사용자가 아니면
: : : setRichEdit1(clRed,"틀림\n");
: : : 이렇게 하고싶습니다.
: : :
: : :
: : :
: : : << 문제점 >>
: : : 메서드가 예전에는 참조1처럼
: : : RichEdit1->Lines->Add(Msg);
: : : 하면 스크롤도 되고 이렇게하려면
: : : RichEdit1->HideSelection =False;를 폼 초기화할때 해줘야합니다.
: : :
: : : 제가하고싶은 <<의도>>대로하려니까.
: : : RichEdit1->Text=RichEdit1->Text+Msg;
: : : 이렇게 해줘야하네요.
: : : 그런데 이렇게하면 색깔도 안나오고
: : : 스크롤이 젤마지막으로 잡히지않네요.
: : :
: : :
: : : << 해결할것들 >>
: : : 1. 색깔을 컬러로 하고싶습니다.
: : : 2. 스크롤을 젤마지막으로 하고싶습니다.
|