Привет, у меня есть lisview с большим количеством предметов в нем (10-20k). Это виртуальный (OwnerData). Мне нужно получить что-то вроде AListItem.visible, а не в OnDataEvent. Существует метод MakeVisible, но нет другого свойства, связанного с видимостью :(Идеальный, если есть массив VisibleItems [] (который обновляется по прокрутке, изменению размера и viewStyleChange). Любые идеи о том, как я могу это сделать?Delphi. Как получить видимое свойство ListViewItem?
ответ
Используйте сообщение LVM_ISITEMVISIBLE
.
Это работает, спасибо ListItemVisible: = SendMessage (List.Handle, $ 1000 + 182 {LVM_ISITEMVISIBLE}, ListItem.Index, 0) <> 0; – DimDim
Если у вас еще нет константы сообщения 'LVM_ISITEMVISIBLE' определенный в 'CommCtrl.pas', определяют его как' const LVM_ISITEM VISIBLE = LVM_FIRST + 182' вместо использования жестко закодированных магических чисел. – TLama
182 - это тоже волшебство) – DimDim
Как вы собираетесь его использовать? – MBo
Есть тяжелые фоновые работы по загрузке изображений (они динамически создаются из других ресурсов). У меня есть 1 изображение в секунду, поэтому я могу 't делать это по данным – DimDim