ストリンググリッドの1行の色付け方法

解決


リュウ  2004-09-16 05:52:40  No: 10926  IP: [192.*.*.*]

ストリンググリッドの列に、色を付けるのは上手くいったのですが、行全体につける方法がうまくいったようでうまくいきません。
と言うのは、1行の各列毎に異なるタイトル文字を設定しており、色付けしてタイトル列にしようとしています。下記の色付け処理をすると色付けは上手く行きますが、最終列のタイトル文字を各列に全て設定してしまい内容が同じになってしまいます。


StrGrdUnten.Canvas.Brush.Color := clGreen;
for iCol:=0 to StrGrdUnten.ColCount-1 do
begin
StrGrdUnten.canvas.TextRect(rect,rect.Left,rect.Top,StrGrdUnten.cells[iCol,1]);
end;

列1  列2  列3
A    B    C
      ↓
C    C    C  ←各列の色はグリーンになるが、全て列3のテキスト内容になって
                しまう。
  

上記処理で、間違いがあれば教えてください。

編集    削除
ggg  2004-09-16 06:18:12  No: 10927  IP: [192.*.*.*]

OnDrawCellのときに上のコードを実行してるなら、for文は不要です。

StrGrdUnten.Canvas.Brush.Color := clGreen;
StrGrdUnten.canvas.TextRect(
    rect,rect.Left,rect.Top,StrGrdUnten.cells[ACol,ARow]);

編集    削除
リュウ  2004-09-16 06:37:08  No: 10928  IP: [192.*.*.*]

ありがとうございます。上手くできました。

編集    削除