掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
STringGridで色分けを行うには? (ID:5086)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
困っています。何卒よろしくお願いいます。 過去にも何度か話題になっていますが、 結局、「StringGridでセル毎に色分けを行う方法」が実現できません。 下記のようにして実験しています。 すなわち、ボタン1を押したらフォント色が赤、ボタン2なら青になるように 設定しています。(市松状に色分け) しかし、これだと、再描画された時に、最後に設定したフォント色で全面が書き換わってしまいます。 何かよい方法はないでしょうか?? ※ ccはグローバル変数 procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if cc =0 then begin StringGrid1.canvas.font.color := clRed; end else begin StringGrid1.canvas.font.color := clBlue; end; StringGrid1.canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]); end; procedure TForm1.Button1Click(Sender: TObject); var ic,ir :Integer; begin cc:=0; for ic:= 0 to 10 do begin for ir:= 0 to 20 do begin with StringGrid1.canvas do begin if (ic+ir) mod 2 =0 then StringGrid1.Cells[ic,ir]:=InttoStr(ic*5+ir); end; end; end; end; procedure TForm1.Button2Click(Sender: TObject); var ic,ir :Integer; begin cc:=1; for ic:= 0 to 10 do begin for ir:= 0 to 20 do begin with StringGrid1.canvas do begin if (ic+ir) mod 2 =1 then StringGrid1.Cells[ic,ir]:=InttoStr(ic*5+ir); end; end; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.