Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Урок 16 - TKOLListView

Delphi , Технологии , KOL и MCK

Урок 16 - TKOLListView

Ведущий раздела KOL и MCK: Анатолий aka XVeL
Автор: Борис Моренко
WEB-сайт: http://kol.mastak.ru

Полную версию библиотеки KOL и MCK можно скачать здесь.

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 количество выделенных пунктов.

Статья Урок 16 - TKOLListView раздела Технологии KOL и MCK может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: KOL и MCK ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-04-24 22:55:34
2024-04-25 12:10:43/0.0068798065185547/2