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
[48766] Re:Re:Re:리치에디터로 로그화면을 만들고싶습니다. 간단한 질문..
아루스 [tinydew4] 1378 읽음    2007-04-05 04:21
색상 코드에서 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. 스크롤을 젤마지막으로 하고싶습니다.

+ -

관련 글 리스트
48758 리치에디터로 로그화면을 만들고싶습니다. 간단한 질문.. pd 1149 2007/04/04
48779     Re:리치에디터로 로그화면을 만들고싶습니다. 간단한 질문.. 방태윤 1225 2007/04/05
48763     Re:리치에디터로 로그화면을 만들고싶습니다. 간단한 질문.. 아루스 1068 2007/04/04
48764         Re:Re:리치에디터로 로그화면을 만들고싶습니다. 간단한 질문.. pd 1177 2007/04/05
48766             Re:Re:Re:리치에디터로 로그화면을 만들고싶습니다. 간단한 질문.. 아루스 1378 2007/04/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.