掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DBGridの背景色に一行置きに色をつけるには? (ID:28686)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ARow があれば ARow mod 2 = 0 で 1行ずつの判定が可能かと思いますが なぜか DrawCell の時は存在する ARow が DrawColunCell のときは消えています procedure TCustomDBGrid.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); DrawColumnCell(ARect, ACol, DrawColumn, AState); どかかにRowを示すプロパティ等があるのかもしれませんが、 ぱっと見分からなかったので・・・継承して逃げてみました TDBGridEx = class(TDBGrid) private FSaveRow : Integer; FSaveCol : Integer; public procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);override; published property SaveRow : Integer read FSaveRow; property SaveCol : Integer read FSaveCol; //Colは必要ないけど end; procedure Register; implementation procedure TDBGridEx.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); begin FSaveRow := ARow; FSaveCol := ACol; inherited; end; というふうに DBGrid を継承して DBGirdEx を作成して if (SaveRow mod 2) = 0 then C := clRed else C := clBlue; DBGridEx1.Canvas.Brush.Color := C; DBGridEx1.DefaultDrawColumnCell(Rect,DataCol,Column,State); としてやれば1行ずつ色を変えて表示する事が可能になります
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.