row별로 필드에 있는 데이타에따라
색상을 변환시키려고 합니다.
처음 DataDrawCell에 하니 안돼더군요 뒤져서 뒤져서 어떻게 찾아보니.
DBgrid.Cloumn.state := csDefault;
로 하면 된다더기에 했죠 아무생각없이...
그러니 정말 색상은 바뀌더군요
그러나...
전 CalcField를 무지하게 써놓았음이니 ㅠㅠ
필드가 전부 다시 코드값과 원래의 이름으로 돌아가더군요
이것 해결방안을 아시는분 좀 답변 기다리겠습니다. ㅠㅠ
제가 다음과 같은 소스로 테스트 해보니 되는 것 같은데요.
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if TDBGrid(Sender).DataSource.DataSet.FieldByName('MODULE_INDEX').AsInteger = 1 then
begin
TDBGrid(Sender).Canvas.Brush.Color := clBlue;
end
else
begin
TDBGrid(Sender).Canvas.Brush.Color := clRed;
end;
TDBGrid(Sender).Canvas.FillRect(Rect);
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
CalcField는 테스트로 하나만 사용했습니다.
aparadin wrote:
> row별로 필드에 있는 데이타에따라
> 색상을 변환시키려고 합니다.
> 처음 DataDrawCell에 하니 안돼더군요 뒤져서 뒤져서 어떻게 찾아보니.
> DBgrid.Cloumn.state := csDefault;
> 로 하면 된다더기에 했죠 아무생각없이...
> 그러니 정말 색상은 바뀌더군요
> 그러나...
> 전 CalcField를 무지하게 써놓았음이니 ㅠㅠ
>
> 필드가 전부 다시 코드값과 원래의 이름으로 돌아가더군요
> 이것 해결방안을 아시는분 좀 답변 기다리겠습니다. ㅠㅠ