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
[70747] StringGrid DrawCell 관련 질문드립니다.
정현율 [ausido] 3340 읽음    2014-01-21 18:58
소스가 너무 길어서... DrawCell 이벤트 관련 부분 소스입니다..

void __fastcall TForm3::DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect,TGridDrawState State)
{
        StringGrid1->FixedRows = 1;
        StringGrid2->FixedRows = 1;

        for(int i = 1 ; i <= StringGrid1->RowCount-1; i++)
        {
            if(ACol == 1 && ARow == i && PathCheck[i] == 1)
            {
                StringGrid1->Canvas->Font->Color = clRed;
                StringGrid1->Canvas->FillRect(Rect);
                  StringGrid1->Canvas->TextOut(Rect.Left,Rect.Top,StringGrid1->Cells[ACol][ARow]);
                break;
            }
            if(ACol == 1 && ARow == i && PathCheck2[i] == 2)
            {
                StringGrid1->Canvas->Font->Color = clBlack;
                StringGrid1->Canvas->FillRect(Rect);
                StringGrid1->Canvas->TextOut(Rect.Left,Rect.Top,StringGrid1->Cells[ACol][ARow]);
                break;
            }
        }


        for(int i = 1; i<= StringGrid2->RowCount-1; i++)
            if(ACol == 1 & ARow == i && PathCheck3[i] == 3)
            {
                StringGrid2->Canvas->Font->Color = clRed;
                StringGrid2->Canvas->FillRect(Rect);
                StringGrid2->Canvas->TextOut(Rect.Left,Rect.Top,StringGrid2->Cells[ACol][ARow]);
                break;
            }
}

소스는 Path 에 등록된 경로에 파일이 존재하지 않으면 해당 셀의 글씨색을 빨간색으로 바꾸는 내용입니다.

첫번째 실행 화면 -- 오른쪽 StringGrid 에서 없는 파일 경로가 빨간색으로 잘 표시됨
두번째 실행 화면 -- 왼쪽 StringGrid1 에서 없는 파일 경로가 빨간색으로 잘 표시됨

문제는 이때 오른쪽 StringGrid 에서 빨간색으로 표시되어있던 부분의 글씨가 짤린다고 해야하나... 아무튼 위치에 변동이 생깁니다...

제 생각으로는 한 DrawCell 이벤트에 StringGrid 두개를 모두 다 제어하도록 소스를 짜서 그런것 같긴 한데..

DrawCell 이벤트는 Form의 변화 발생시점마다 실행이 되는 것으로 알고 있습니다.

그래서 grid마다 이벤트를 따로 줘야 하나 해서 해봤더니 되질 않네요...

더이상 방법을 못찾고 있습니다. 아시는 분 있으시다면 해결좀 부탁드려요...

+ -

관련 글 리스트
70747 StringGrid DrawCell 관련 질문드립니다. 정현율 3340 2014/01/21
70751     Re:StringGrid DrawCell 관련 질문드립니다. 장성호 3156 2014/01/21
70756         Re:Re:StringGrid DrawCell 관련 질문드립니다. 정현율 2931 2014/01/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.