StringGridで一行だけセルに色を付けるには?

解決


ゆきお  2003-10-23 23:30:01  No: 5354

お世話になります。宜しくお願い致します。
22(列)×21(行)のStringGridを表示する時に11行目のセル全てを黄色(clYellow)で塗りたいと思っております。
ヘルプや参考書や過去ログを参考にしましたが、StringGrid内全てを
塗ることしかできませんでした。
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  canvas:tcanvas;
begin
  canvas:=tdrawgrid(sender).Canvas;
  canvas.Brush.Color:=clYellow;
  canvas.FillRect(rect);
end;
色々試したのですが、11行目の指定のしかたで行き詰ってしまいます。
ご存知の方いらっしゃいましたらご指導いただけますでしょうか。
宜しくお願い申し上げます。


HOota  2003-10-23 23:44:17  No: 5355

If ARow = 11 Then
      With StringGrid1.Canvas Do
      Begin
         Brush.Color := clBlue;  //適当な背景色
         FillRect(Rect);
         Font.Color := clWhite;  //文字の色
         //文字の書き直し
         DrawText(Handle, PChar(StringGrid1.Cells[ACol,ARow]),
                          Length(StringGrid1.Cells[ACol,ARow]),
                          Rect,
                          DT_RIGHT);
      End;


ゆきお  2003-10-23 23:54:29  No: 5356

HOotaさん、こんにちは。
ものすごい早いレスをいただきありがとうございます。
実行したところ、やりたかった通りの結果になりました。
大変感謝申し上げます。どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加