DBGrid 色によって色を変化するには

解決


サッチ  2008-10-22 20:44:57  No: 32319  IP: 192.*.*.*

DBGridである行をダブルクリックしたら、その行だけ色が黒に
なり、再度ダブルクリックすると白くなるよう(白→黒→白→黒と)
にしたのですが、そうすればいいでしょうか?

編集 削除
そうですね  2008-10-22 20:47:37  No: 32320  IP: 192.*.*.*

そうしたのなら、そうすればいいでしょう。

編集 削除
サッチ  2008-10-22 22:58:18  No: 32321  IP: 192.*.*.*


×そうすればいいでしょうか?

○どうすればいいでしょうか?

編集 削除
TS  2008-10-23 12:48:50  No: 32322  IP: 192.*.*.*

この掲示版の検索機能で'DBGrid 色'とか'OnDblClick' とか
で検索してみて下さい。

https://www.petitmonte.com/bbs/answers?question_id=4890

編集 削除
サッチ  2008-10-23 21:52:27  No: 32323  IP: 192.*.*.*

過去ログを参考にして実装してみましたが、選択していない行まで
色が変わってしまったり、挙動が怪しいです。

with TDBGrid(Sender) do begin
  if (Canvas.Brush.Color = clWhite) and 
    (TDBGrid(Sender).SelectedRows.CurrentRowSelected = True) then
  begin
      Canvas.Brush.Color := clBlack;
  end
  else
  begin
      Canvas.Brush.Color := clWhite;
  end;
    DefaultDrawColumnCell(Rect, DataCol, Column, State);
  end;

編集 削除
TS  2008-10-23 22:23:23  No: 32324  IP: 192.*.*.*

グローバルな変数を使って行の色を決めてもいいのなら
簡単でしょうが。
Canvas.Brush.Color を一度変えれば以後の全ての行に
影響すると思いますが。

編集 削除
サッチ  2008-11-02 11:17:57  No: 32325  IP: 192.*.*.*

なんとか実装に成功しました。
ありがとうございました。

編集 削除