ListView - CustomDrawItemを利用して、列ごとに色を付けたい

解決


れお  2020-06-17 17:50:45  No: 148822  IP: [192.*.*.*]

バーチャルモードでListViewを描画しております。
CustomDrawItemを利用すれば、行ごとに色を変えることはできるのですが、列ごとに色を変える方法が分かりません。

大変お手数ですが、列ごとに色を変える方法を知っておられる方が居られましたら
ご教授頂ければと思います。

編集    削除
igy  2020-06-17 21:40:44  No: 148823  IP: [192.*.*.*]

> バーチャルモードで
というのが、よくわからないので、外しているかもしれませんが・・・

OnAdvancedCustomDrawSubItemイベントにて、

procedure TForm1.ListView1AdvancedCustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  Stage: TCustomDrawStage; var DefaultDraw: Boolean);
begin
    case SubItem of
        1:  Sender.Canvas.Brush.Color := clBlue;
        2:  Sender.Canvas.Brush.Color := clLtGray;
        3:  Sender.Canvas.Brush.Color := clSkyBlue;
      else  Sender.Canvas.Brush.Color := clWhite;
    end;
end;

のような感じでしょうか?

編集    削除
れお  2020-06-18 08:06:06  No: 148824  IP: [192.*.*.*]

igyさん

ご回答ありがとうございました。
OnAdvancedCustomDrawSubItemイベントでイメージ通りの対応ができました。

編集    削除