Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

ListView - отображение информации в стиле папок Windows

CuBook3.675

Компонент ListView позволяет отображать в стиле Windows данные в виде списков, таблиц, крупных и мелких пиктограмм. С подобным отображением все вы сталкиваетесь, раскрывая папки Windows.
 
Стиль отображения информации определяется свойством ViewStyle, которое может устанавливаться в процессе проектирования или программно во время выполнения. Свойство может принимать значения:
- vslcon - крупные значки;
- vsSmallIcon - мелкие значки;
- vsList - список;
- vsReport - таблица.
 
Создайте новое приложение и перенесите на него ListView. Основное свойство компонента ListView, описывающее состав отображаемой информации Items. Во время проектирования оно может быть установлено специальным редактором, вызываемым щелчком на кнопке с многоточием рядом с этим свойством в окне Инспектора Объектов. Окно редактора похоже на окно, описанное для компонента TreeView. Точно так же в нем задаются новые узлы кнопкой New Item и дочерние узлы кнопкой New Subltem. Только смысл дочерних узлов другой: это информация, которая появляется только в режиме vsReport в виде таблицы.
 
Задайте в редакторе некоторое множество элементов и дочерних узлов. Смысл их зависит от конкретной задачи. Это могут быть некоторые изделия и цеха, в которых они должны проходить обработку, или это могут быть товары и пункты, куда их надо отправить, и т.п.
Для каждого узла задается свойство Caption - надпись, появляющаяся около пиктограммы. Для дочерних узлов это свойство соответствует надписи, появляющейся в ячейках таблицы в режиме vsKeport.
 
Свойство Image Index определяет индекс пиктограммы. Индекс соответствует спискам изображений, хранящимся в отдельных компонентах ImageList. Указания на эти компоненты вы можете задать в свойствах LargeImages для режима vslcon и SmallImages для режимов vsSmallIcon, vsList и vsReport. Индексы начинаются с 0. Если вы укажете индекс -1 (значение по умолчанию), пиктограммы изображаться не будут.
Свойство State Index в панели Item Properties позволяет добавить вторую пиктограмму в данный объект. Подобная пиктограмма может просто служить дополнительной характеристикой объекта. Индекс, указываемый как State Index, соответствует списку изображений, хранящихся в отдельном компоненте ImageList, указанном в свойстве Statelmages компонента ListView.
 
Метод Arrange позволяет упорядочить пиктограммы в режимах vsIcon и vsSmallIcon.
Параметр Code определяет способ упорядочивания:
Значение Описание
arAlignBottom выравнивание вдоль нижнего края области.
arAlignLeft выравнивание вдоль левого края области.
arAlignRight выравнивание вдоль правого края области.
arAlignTop выравнивание вдоль верхнего края области.
arDefault выравнивание по умолчанию (вдоль верхнего края области).
arSnapToGrid размещение каждой пиктограммы в ближайшем узле сетки.
Вы можете ввести в свое тестовое приложение раздел Выравнивание и в обработчик щелчка записать оператор:
ListView1->Arrange(arAlignTop);
Тогда после перетаскивания элементов вы всегда сможете опять упорядочить их расположение, выбрав этот раздел меню.
 
Способ упорядочивания определяется соответствующим заданием свойства SortType.
Свойство Checkboxes, установленное в true, определяет отображение индикатора с флажком около каждого элемента списка. Только учтите, что свойство срабатывает только в случае, если вы не установили описанное ранее свойство Statelmages. Иначе говоря, около пиктограммы может появляться или индикатор, или дополнительная пиктограмма.
Индикаторы элементов можно устанавливать программно или их может изменять пользователь во время выполнения. Тогда узнать программно, установлен ли индикатор в некотором элементе Items[i], можно проверкой его свойства Checked:
for(int i=0; i < ListView1->Items->Count; i++)
if(ListView1->Items->Item[i]->Checked)
ShowMessage("Выбран элемент " + ListView1->Iterns->Item[i]->Caption);
Приведенный оператор проверяет все элементы и отображает сообщения о тех, в которых установлен индикатор. В реальном приложении, конечно, вместо такого сообщения должны предприниматься какие-то действия.
 
Свойства HotTrack и HotTrackStyles определяют появление выделения при перемещении курсора над элементом списка и стиль этого выделения.
Свойство HoverTime задает в миллисекундах задержку появления такого выделения.
Свойство списка Selected определяет выделенный пользователем элемент списка. Этим можно воспользоваться для выполнения каких-то действий.
Например, если требуются некие действия при двойном щелчке на каком-то элементе, то в обработчике события OnDblClick компонента ListView можно написать оператор:
if(ListView1->Selected != NULL)
ShowMessage(ListView1->Selected->Caption);
Оператор if проверяет, выделен ли какой-то элемент, т.е. произведен ли двойной щелчок на элементе, а не просто на пустом поле списка. Если щелчок на элементе, то с ним можно провести какие-то действия (в данном примере вместо этого просто отображается сообщение).
 
Свойство Columns определяет список заголовков таблицы в режиме vsReport при свойстве ShowColumnHeaders (показать заголовки), установленном в true.
Свойство Columns можно задать в процессе проектирования специальным редактором заголовков, вызываемом двойным щелчком на компоненте ListView или щелчком на кнопке с многоточием рядом со свойством Columns в окне Инспектора Объектов. В обоих случаях перед вами откроется окно редактора заголовков. Кнопка Add New позволяет добавить новую секцию в заголовок, кнопка Delete Selected - удалить секцию, кнопки Move Selected Up и Move Selected Down (кнопки со стрелками) позволяют изменять последовательность секций.
 
После того, как вы добавили секцию и установили на ней курсор, в окне Инспектора Объектов появится множество свойств этого объекта. В свойстве Caption вы можете задать текст заголовка. В свойстве ImageIndex можете указать индекс пиктограммы, которая появится перед заголовком.
Свойства MinWidth и MaxWidth определяют соответственно минимальную и максимальную ширину заголовка в пикселах. Только в этих пределах пользователь может изменять ширину заголовка курсором мыши. Значение ширины по умолчанию задается значением
свойства Width при изменении ширины секции во время выполнения генерируется событие OnSectionResize.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий