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

解決


れお  2020-06-17 17:50:45  No: 148822

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

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


igy  2020-06-17 21:40:44  No: 148823

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

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

igyさん

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


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








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