Q&A

  • DrawColumnCell에 관한 질문(소스있음)
procedure Tform1.DBGrid1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumn;

State: TGridDrawState);

var

ls_term : integer;

begin



// .. 일수에 색깔 넣기 .. //

ls_term := query1.FieldByName('Il_Su').asInteger;

if ls_term > 7 then

begin

//(sender as TDbGrid).Canvas.Font.Color := clRed;

ⓐ.{위의 이넘은 한 레코드 모든 컬럼의 폰트가 색깔 바뀜}

(Sender as TDbGrid).Columns[3].Font.Color := clRed;

ⓑ.{위의 이넘은 3번째 컬럼의 값을 무조건 빨간색으로 바뀜(조건이 맞을경우만)}

(Sender as TDbGrid).canvas.FillRect(Rect) ;



(sender as TDbGrid).DefaultDrawColumnCell

(Rect,DataCol,Column,State);

end

else

begin

(sender as TDbGrid).DefaultDrawColumnCell

(Rect, DataCol, Column, State);

end ;

end;

end;



검색 해서 찾아보니 한 레코드 전체 바꾸는 것 밖에 없더라구요.

제가 원하는건 어떤 특정 레코드중 "Il_Su(일수)"라는 컬럼의 값의 폰트의

색깔만 변하게 하고 싶은데..

예를 들어

순번 내용 일수

--------------------------

1 첫번째 내용 8

2 두번째 내용 4



라는 내용이 있다면

조건에 7일 이후만 색깔을 바꾼다고 가정하고

위의 소스중

ⓐ의 경우는 한 레코드의 모든 컬럼의 값이 바뀌고

(즉 1 첫번째 내용 8 이라는 값이 빨간색)

ⓑ의 경우는 조건이 맞을 경우 모든 레코드의 해당 컬럼의 색이 바뀜

(즉 일수의 8 하고 4 라는 값이 빨간색으로 바뀐다는 이야기 ^^;)

제가 원하는 건

일수(Il_Su)라는 컬럼의 8만 빨간색으로 바꾸고 싶어요...

어떻게 해야 하죠?



아 그리고 한가지 더 DrawDataCell은 왜 이벤트가 일어 나지 않죠...

분명히 이벤트와 링크가 연결이 되어있던데...

이넘 언제 이벤트가 발생해영?

다른님들은 이 이벤트 잘 이용하시는것 같은데... 왜 나만..ㅠㅠ





0  COMMENTS