Использование флажка в виртуальном режиме просмотра списка - PullRequest
3 голосов
/ 26 октября 2011

Я учусь делать виртуальный режим просмотра списка. Пока что моя проблема в том, что я не могу использовать флажок в списке. Я уже прочитал ссылку с http://delphi -kb.blogspot.com / 2011/02 / draw-checkboxes-in-virtual-mode.html , но не вижу ни одного флажка. Есть идеи?

1 Ответ

2 голосов
/ 26 октября 2011

Очевидно, вы должны нарисовать CheckBoxes самостоятельно, когда OwnerData включен (как упомянуто в статье, связанной с вопросом).

Таким образом, вы должны установить OwnerDraw на True (в дополнениена OwnerData, эти два являются независимыми флагами!) и сами нарисуйте флажки в событии OnCustomDrawItem.

Обновление:

Кажется, что это не такСовершенно верно, событие OnCustomDrawItem также запускается в случае OwnerDraw = False.

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

Обновление 2:

Код, связанный вВопрос работает только тогда, когда OwnerDraw = False и CheckBoxes = True.

В противном случае VCL не резервирует место слева для рисования флажков.

Кстати: вам может быть лучше использовать более продвинутый компонент, такой как TVirtualTreeView от Майка Лишке.

...