|
Rx 컴포넌트는 13년 전 한 번 써본 적 밖에 없어서 잘 모르겠지만서도 일단 소스를 대충 보니 그리드 전체의 캔버스를 얻어서 거기에 그렸으니 당연히 안되겠죠.
Rx컴포넌트에도 OwnerDraw 이벤트나 OnCellDraw 이벤트 등등 개별 셀을 직접 그릴 수 있는 이벤트가 준비돼 있을겁니다. 아마 그런 이벤트들은 인자로 Rect정보, 개별 셀의 Canvas정보들이 담겨 있겠죠. 그걸 이용해서 그리셔야 할겁니다.
영악한녀석 님이 쓰신 글 :
: 먼저 충분히 검색해 봤는데 적절한 답이 없어서 글을 쓰게됬습니다. 죄송스럽고 송구스럽게 생각합니다.
:
: TRxDBGrid에 3번째 칼럼의 레코드와 4번째 칼럼의 레코드를 비교하여서.. 같지 않으면 같지 않은 라인에 배경색상을 넣어주는 코드를 짜 보려 합니다.
:
: -----------------------------------------------------------------------------
: 1 | 2 | 3 | 4 | 5
: -----------------------------------------------------------------------------
: | | 천재 | 바보 | << 이런 경우에 음영
: | | 천재 | 천재 | << 이런 경우에 음영 없음
:
:
: 제가 짠 소스는..
:
: DrawColumnCell Event에서
:
:
: String sResult = ADORecom->FieldByName("RESULT")->AsString;
: String sVms_ID = ADORecom->FieldByName("VMS_ID")->AsString;
: TCanvas * canvas = LinkToVmsGrid->Canvas;
:
: ADORecom->First();
:
: while(!ADORecom->Eof)
: {
: if(sResult.AnsiCompare(sVms_ID) != 0)
: {
: canvas->Brush->Color = clBlack;
: canvas->Font->Color = clWhite;
: canvas->FillRect(Rect);
: }
: ADORecom->Next();
: }
:
: 이런식으로 했더니.. 첫번째 칼럼의 첫번째 셀에만 색이 들어가더라구요.. ㅠ.ㅠ
: 선배님들 꼭 좋은 조언좀 부탁드리겠습니다..!!
|