Использование флажка в виртуальном режиме просмотра списка

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

1 ответ

Решение

Видимо, вы должны нарисовать флажки самостоятельно, когда 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 от Майка Лишке.

Другие вопросы по тегам