を使用して、4列のレポートモードでリストビューコントロールを所有者が描画しようとしていますOnCustomDrawItem
。
Canvas.font.colorを変更しようとしても、それだけで問題はありません。
canvas.font.sizeを設定すると、コントロールによって描画されるテキストのサイズに変更がないことがわかります。
OnCustomDrawItem内からテキストのペイントを引き継ごうとすると、できないことがわかります。OnCustomDrawを使用して背景領域に描画する方法を知っていますが、テキストの色とフォント名およびフォントサイズを設定できるように、リストビューITEMをカスタム描画したいと思います。
ListView所有者描画のコンテキストでCanvasを使用することにはいくつかの問題があり、ListViewで実行できることにはいくつかの制限があることを私は知っています。
procedure TForm1.MyListViewCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
Sender.Canvas.Font.Size := 13; // NO effect.
Sender.Canvas.Font.Color := clRed; // WORKS.
Sender.Canvas.Font.Style :=Sender.Canvas.Font.Style + [fsBold]; // WORKS!
end;