DB그리드에서 각 레코드별 색을 다르게 하고 싶은데
OnDrawDAtaCell이벤트호출이 안되네여
그래서
dbgrid1.columns.state := csDefault
로 해주었는데 이벤트는 호출하지만 색은 변하지 않고
더욱 문제점은 Grid가 Default가 되어선 안되는데..
여하튼. 현재의 그리드 상태에서 색을 넣는건 무리인가요?
procedure TF_Order01.DBGrid4DrawDataCell(Sender: TObject;
const Rect: TRect; Field: TField; State: TGridDrawState);
begin
If MemDivision.Text = '1' then
(Sender as TDbGrid).canvas.Brush.Color := clYellow
else (Sender as TDbGrid).canvas.Brush.Color := $00ECFFFD;
end;
> DB그리드에서 각 레코드별 색을 다르게 하고 싶은데
> OnDrawDAtaCell이벤트호출이 안되네여
> 그래서
>
> dbgrid1.columns.state := csDefault
>
> 로 해주었는데 이벤트는 호출하지만 색은 변하지 않고
> 더욱 문제점은 Grid가 Default가 되어선 안되는데..
> 여하튼. 현재의 그리드 상태에서 색을 넣는건 무리인가요?
>
> procedure TF_Order01.DBGrid4DrawDataCell(Sender: TObject;
> const Rect: TRect; Field: TField; State: TGridDrawState);
> begin
> If MemDivision.Text = '1' then
> (Sender as TDbGrid).canvas.Brush.Color := clYellow
> else (Sender as TDbGrid).canvas.Brush.Color := $00ECFFFD;
> end;
>
>
OnDrawDataCell 은 그리드에 Column을 설정해주면 호출이 안되고 대신에
OnDeawColumnCell 이 호출됩니다.
그 이벤트를 이용하시면 됩니다....
아니면 런타임때 컬럼을 설정해주면 온드로우데이터셀을 쓸수가 있죠.. ^^