Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Визуальное программирование Delphi.doc
Скачиваний:
92
Добавлен:
05.06.2015
Размер:
603.65 Кб
Скачать

3. Компонент ListView(страницаWin32)

Компонент ListView позволяет представить данные в виде списков, таблиц, крупных и мелких пиктограмм, дает возможность представления иерархических структур. Смысл дочерних узлов другой: это информация, которая появляется только в режиме vsReport - в виде таблицы.

Ряд свойств компонента ListView:

  • Items – объекты типа TListItem, доступ к которым осуществляется с помощью редактора свойств или программно

  • ViewStyle - стиль отображения информации. Может принимать следующие значения:

    • vsIcon - крупные значки

    • vsSmallIcon - мелкие значки

    • vsList - список

    • vsReport - таблица

  • Columnsопределяет список заголовков в режиме отображения таблицы vsReport , объекты типа TListColumn. При этом свойство ShowColumnHeaders должно быть установлено в true

  • Largelmages указывает на компонент, хранящий пиктограммы для отображения больших иконок (режим vsIcon)

  • SmallImages указывает на компонент, хранящий пиктограммы для режимов vsSmallIcon, vsList и vsReport

Свойство Items в свою очередь имеет ряд свойств, относящихся к определенному узлу и доступные только во время выполнения программы:

  • SubItems – определяет дочерний узел, т.е. колонки табличного списка

  • Caption - надпись, появляющаяся около пиктограммы Для дочерних узлов это свойство соответствует надписи, появляющейся в ячейках таблицы в режиме vsReport.

  • ImageIndex - определяет пиктограммы, индексы которых соответствует спискам изображений в компонентах ImageList. Указания на эти компоненты можно задать в свойствах Largelmages и SmallImages

Эти свойства можно задать в редакторе Items кнопками NewItem - новые узлы и NewSubltem - дочерние узлы. Здесь также задаются свойства Caption и ImageIndex. Свойство Columns также можно задать в специальном редакторе заголовков, вызываемым двойным щелчком на компоненте ListView или через Инспектор Объек­тов. При этом следует задавать значение свойства Caption

Основные методы компонента ListView:

  • Clear - очистка списка

  • Add - добавление элемента

  • Delete удаление элемента

  • Пример 3. Продолжим рассмотренный выше пример. Добавим на форму компонент ListView и зададим начальный режим отображения списка, т.е. в виде списка

procedure TForm1.FormCreate(Sender : TObject)

begin

ListView1.ViewStyle: = vsList;

end;

Заполним свойство Columns, добавив в него 4 элемента с надписями (свойство Caption) «Фамилия», «Имя», «Номер зачетной книжки», «Номер читательского билета». Это будут заголовки столбцов в табличном режиме отображения списка. Теперь сделаем так, чтобы при выборе пользователем конкретного узла дерева (группы или студента) информация о нем отображалась бы в окне списка ListView. Необходимо обрабатывать событие OnChange дерева:

procedure TForm1.TreeView1Change(Sender : TObject; Node : TTreeNode)

var

i : integer;

begin

ListView1.Items.Clear; //очистка списка

if (Node.Level > 0) //если выбран дочерний узел

then SetViewList (Node); //выводим сведения об отдельном студенте

else //если выбран корневой каталог с номером группы

for i :=0; to Node.Count do

SetViewList (Node.Item[i]); //выводим сведения о всей группе

end;

Здесь для каждого узла вызывается функция SetlViewList, которую необходимо заранее определить в классе формы как

private: procedure SetViewList( Nd : TTreeNode);

и реализовать :

procedure TForm1,SetViewList(Nd : TTreeNode)

var

Item1: TListItem; //новый элемент списка

begin

Item1:=ListView1.Items.Add; //добавляем элемент

Item1.Caption:=TStudent(Nd.Data).Fam; //надпись для пиктограммы

//заполняем колонки табличного списка, т.е. добавляем дочерние элементы

Item1.SubItems.Add(TStudent(Nd.Data).Name);

Item1.SubItems.Add(IntToStr(TStudent(Nd.Data).NomZach));

Item1.SubItems.Add(IntToStr(TStudent(Nd.Data).Chit));

Item1.ImageIndex:=2; //значок элемента

end;