|
제가원하는 방식은 참조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. 스크롤을 젤마지막으로 하고싶습니다.
|