TKOLListView
Как и следует из названия это аналог
TListView из VCL. Может быть 5-ти видов. За это
отвечает свойство LVStyle (на панели задач
Style).
lvsIcon |
Список в виде
больших иконок и
надписей снизу. |
lvsSmallIcon |
Список в
виде маленьких
иконок и
надписей снизу. |
lvsList |
Обычный
списко. Если
есть иконки то
они слева. |
lvsDetai |
Таблица с
заголовком
сверху. |
lvsDetailNoHeader |
Таблица без
заголовка. |
Для того что бы указать иконку надо бросить
на форму TKOLImageList
.
Два раза кликнуть по нему и указать нужное
изображение. Затем надо указать этот ImageList у
TKOLListView изменить свойства ImageListNormal,
ImageListSmall или ImageListSate.
Предположим что у нас есть гипотетический
ListView (объект класса TKOLListView)
Для того что бы добавить пункт в список надо
обратится к LVItemAdd.
ListView.LVItemAdd ('Значение')
Но если у вашего ListView установлен
стиль
lvsDetai то через LVItemAdd вы сможете
добавить текст только в первый столбец. Для того
что бы добавить данные в остальные столбцы
обратитесь к LVItems
ListView.LVItems[i,j] := 'значение';
i - строка
j - столбец
i и j нумеруется с нуля.
Разумеется перед тем как обращаться к этому j-му
столбцу неплохо бы его создать. Для этого надо
обратится к свойсву Columns или просто
щелкнуть по объекту два раза. Появится диалог в
котором все и настраивается.
Для того что бы узнать номер пункта
выбранного пользователем надо обратится к
CurIndex. А зная его вы сможите узнать и
текст который написан в этом пункте:
ListView.LVItems[ListView.CurIndex,0]
(если у вас стиль lvsDetai то 0 должен меняться
на соответствующий номер столбца)
У TKOLListView есть свойство Options через
которое указываются различные параметры для его
настройки. Самые интересные (по моему мнению)
ниже в таблице.
lvoAutoArrange |
Автоматически
располагает
иконки по всей
поверхности
ListView при
изменение его
размера (при
Style =lvsIcon). |
lvoEditLabel |
Можно
редактировать
надпись в списке |
lvoHideSel |
Не один
пункт нельзя
выделить |
lvoGridLines |
В режиме
lvsDetai
показываются
разделительные
линии таблицы. |
lvoCheckBoxes |
Добавляет к
каждому пункту
флажок. |
lvoRowSelect |
В режиме
lvsDetai
выделяется вся
строка в таблице
(а не только
первая ячейка). |
lvoMultiselect |
Есть
возможность
выделять
несколько
пунктов |
Пару слов про lvoCheckBoxes. Благодяры ему вы
сможете с легкостью сделать из TKOLListView
аналог VCL TCheckListBox. Для того чтобы
проверить установлен ли флажок на определенном
пункте(или установить его) надо обратится к
LVItemStateImgIdx.
ListView.LVItemStateImgIdx[i] :=j
j - может принимать два значения: 1 - нет
галочки ; 2 - галочка установлена.
i - это номер пункта. Если i равно -1 тогда идет
обращение ко всем пунктам
Таким образом для того что бы снять все
галочки надо написать следующую строку:
ListView.LVItemStateImgIdx[-1] :=1
К сожелению если вам надо например проверить
выделены ли все пункты в списке то строка
if ListView.LVItemStateImgIdx[-1] = 1
then...
результата не даст. Тут надо переберать все
пункты. Для того чтобы узнать количество пунктов
надо обратится к LVCount. Если у вас
стиль равен lvsDetai то количество столбцов
узнается через LVColCount.
Если у вас в
опциях присутствует lvoMultiselect вы сможете
выделить несколько пунктов.
Для того чтобы узнать номера первого выделенного
пункта нам надо обратится к CurIndex.
После чего обращаясь к LVNextSelected
можно перебрать все пункты. Если больше нет
выделенных пунктов LVNextSelected возвращает -1.
Пример перебора:
var
i,j:integer;
begin
i := ListView.LVCurItem;
if ListView.LVSelCount >0 then
repeat
MsgOK('Выделеный пункт №'+int2str(i));
j := ListView.LVNextSelected(i);
i:=j
until j < 0;
...
LVSelCount - количество выделенных
пунктов.
Краткая справка по свойствам TKOLListView
LVItemAdd |
Добавить запись |
LVItems |
Обратится к
записи |
CurIndex |
Номер
выделено записи |
LVItemStateImgIdx |
Проверка
флажка |
LVCount |
Количество
записей |
LVColCount |
Количество
столбцов при
стиле lvsDetai |
LVNextSelected |
Следующий
выделенный пункт |
LVSelCount |
количество
выделенных
пунктов. |
|