3

私は仮想モードのリストビューを作成することを学んでいます。これまでのところ、私の問題は、リストビューのチェックボックスを使用できないことです。http://delphi-kb.blogspot.com/2011/02/draw-checkboxes-in-virtual-mode.htmlからのリンクをすでに読んでいますが、チェックボックスが表示されません。何か案が?

4

1 に答える 1

2

明らかに、有効になっている場合は自分でチェックボックスを描画する必要がありますOwnerData(質問にリンクされている記事で説明されています)。

したがって、 (に加えて、2つは独立したOwnerDrawフラグです!)に設定し、イベントで自分でチェックボックスを描画する必要があります。TrueOwnerDataOnCustomDrawItem

アップデート:

これは完全に真実ではないようです。この場合、OnCustomDrawItemイベントも発生しOwnerDraw = Falseます。

http://docwiki.embarcadero.com/VCL/XE2/en/ComCtrls.TListView.OnCustomDrawItem

アップデート2:

質問にリンクされているコードは、との場合にのみ機能しOwnerDraw = FalseますCheckBoxes = True

それ以外の場合、VCLはチェックボックスを描画するために左側のスペースを予約しません。

ところで:MikeLischkeのTVirtualTreeViewのようなより高度なコンポーネントを使用する方が良いかもしれません。

于 2011-10-26T09:49:05.017 に答える