-
КОЛнМЦК 2.90 "обычный" список по неизвестной мне причине не сразу стал отображать чекбоксы, а в виртуальном режиме не показывал ни разу. Что не так делаю? свойства ЛВ: lvoGrigLines, lvoCheckBoxes, lvoRowSelect, lwoOwnerData procedure TForm1.LV1LVData(...
begin
ImgIdx := -1; Store := False;
case SubItem of
0: Txt := tmp.Items[Idx];
1: Txt := Int2Str( tmp.Objects[Idx] );
end;
end;
-
Так пришлось что чекбоксы в обычном listview я проверял не очень давно. Соответственно хотель бы уточнить до начала разбирательств, что означает не сразу. Виртуальный тогда не пробовал, не знаю, будет ли на него распространяться сия фича, может и нет. В этом случае обычным путем - галки в imagelist, возвращать индекс.
-
закинул на форму второй LV, настроил - нет чекбоксов. Долго возился, заменил новым - опять нет. Потом кинул лв заново, имя с lv2 поменял на lv3 (потом его исправлял в коде), настроил, методы прощёлкал (присвоил уже написанные) - заработало. Это обычные. Теперь такая же проблема с LV1, но он мне нужен только виртуальным. Вышеописанное не подошло.
Пробовал настроенный LV3 переключить в виртуальный - место выделяется, но квадратики не рисуются
PS Когда первый раз писал код, было без lvoCheckBoxes, его я включил позже, тогда и заметил эту проблему
-
Может, MCK не срауз код перегенировал, или build нужен был? У меня вроде как-то сразу работает. Delphi-то какой версии? Я под Delphi5 проверял.
-
D7, билд был. Это началось не раньше версии 2.70, точно не помню
-
возможно нашёл в чём дело. Чекбоксы не рисуются в нормальном режиме, если определён обработчик OnLVData. Включаю lvoOwnerData, всё норм кроме чекбоксов.
-
вопрос по теме - как отображать?
-
Чекбокс - это просто индекс в списке ImageList. В ImageList добавляется свой крыжик, и либо его индекс, либо -1 (или индекс картинки без чекбокса) - в ImgIdx. Анализировать клик на крыжике (и нажатие пробела, например) и самостоятельно фиксировать состояние "checked". Виртуальный он на то и виртуальный, что хранить эти и никакие другие данные не обязан.
-
в ImageList1 3 картинки (бмп24, 16х16). Код: ImgIdx := 1; в imageListState прописал imageList1. Ничего не отображается. lvoCheckBoxes и включал и выключал
-
-
Спасибо! Почему lvwpOnIcon (ImageListSmall), а не lvwpOnStateIcon (ImageListState)?
-
State Icon - это другая иконка, в отдельной колонке, из списка ImageListState.
-
перенёс в свой код. Такое ощущение, что обновляется только при следующей отрисовке. Код из [9]
-
А listview.Invalidate - не помогает? У меня же был в коде.
-
в вашем работает, в моём - только при следующем клике, при этом только что кликнутое визуально не изменяется
-
или ChBtmp[LV1.LVCurItem] := not ChBtmp[LV1.LVCurItem]; задерживается на клик, что ещё менее вероятно
-
наконец-то я проснулся :) Там выше есть i := LV1.LVItemAtPosEx( Mouse.X, Mouse.Y, Where);
вот i и нужно подставлять вместо LV1.LVCurItem
|