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
[56830] Re:StringGrid Cell 이 아닌 line 의 색갈 변경 방법?
skjoon [skjoon] 1441 읽음    2009-05-13 12:01
궁금이 님이 쓰신 글 :
: Cell 의 색을 변경하는게 아니라
: line 의 색을 어떤라인은 투명으로 어떤 라인은 까만색으로 지정할수있나요?

스트링그리드 속성은 기본 속성 그대로 두고 DrawCell 이벤트 함수만 구현했습니다.
투명한 라인을 그리시려면 DefaultDrawing 속성을 False로 하시고 라인을 그리지 않던지
아니면 DefaultDrawing 속성이 True인 상태에서 스트링그리드의 Color와 같은 색으로 라인을 그리시면 될 것 같습니다.
그리고 Cell의 상태에 따라 각각 다른 라인을 그리시려면... 각 상황에 따라.. Rectangle이 아닌 LineTo를 사용해서 일일이 그려주셔야 할 것 같습니다. :->

void __fastcall TForm1::StringGrid2DrawCell(TObject *Sender, int ACol,
      int ARow, TRect &Rect, TGridDrawState State)
{
    TCanvas* Canvas = ((TStringGrid*)Sender)->Canvas;

    if(State.Contains(gdFixed)) {
        /* Fixed Row 또는 Fixed Column 일 경우에는 그리지 않는다. */
    } else {
        Canvas->Pen->Color = clBlue;

        /* Fixed Row 또는 Fixed Column에 접한 라인은 그리지 않는다. */

        if(ARow == ((TStringGrid*)Sender)->FixedRows) {
            if(ACol == ((TStringGrid*)Sender)->FixedCols) {
                Canvas->MoveTo(Rect.Left, Rect.Bottom);
            } else {
                Canvas->MoveTo(Rect.Left-1, Rect.Top);
                Canvas->LineTo(Rect.Left-1, Rect.Bottom);
            }
            Canvas->LineTo(Rect.Right, Rect.Bottom);
            Canvas->LineTo(Rect.Right, Rect.Top-1);
        } else if(ACol == ((TStringGrid*)Sender)->FixedCols) {
            Canvas->MoveTo(Rect.Left, Rect.Top-1);
            Canvas->LineTo(Rect.Right, Rect.Top-1);
            Canvas->LineTo(Rect.Right, Rect.Bottom);
            Canvas->LineTo(Rect.Left-1, Rect.Bottom);
        } else {
            Canvas->Rectangle(Rect.Left-1, Rect.Top-1, Rect.Right+1, Rect.Bottom+1);
        }
    }
}
//---------------------------------------------------------------------------

+ -

관련 글 리스트
56828 StringGrid Cell 이 아닌 line 의 색갈 변경 방법? 궁금이 1103 2009/05/13
56830     Re:StringGrid Cell 이 아닌 line 의 색갈 변경 방법? skjoon 1441 2009/05/13
56832         Re:Re:StringGrid Cell 이 아닌 line 의 색갈 변경 방법? -> 답변 정말정말 감사합니다 (냉무) 궁금이 1185 2009/05/13
56834             Re:Re:Re:StringGrid Cell 이 아닌 line 의 색갈 변경 방법? (추가 질문이요~) canvas 초기화 skjoon 2682 2009/05/13
56845                 Re:Re:Re:Re:StringGrid Cell 이 아닌 line 의 색갈 변경 방법? 정성스런 답변 정말 감사드립니다~ 궁금이 1656 2009/05/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.