Использование флажка в виртуальном режиме просмотра списка
Я учусь делать виртуальный режим просмотра списка. Пока что моя проблема в том, что я не могу использовать флажок в списке. Я уже прочитал ссылку с 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 от Майка Лишке.