4

を使用して、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;
4

1 に答える 1

10

TDBGridでも同様の問題が発生しました。

Canvas.RefreshCanvas.Fontプロパティを再割り当てした後、呼び出してみてください 。

于 2012-03-02T17:43:24.943 に答える