Иллюстрированный самоучитель по Delphi 7 для профессионалов

Компоненты TTreeView и TListView

В зависимости от значения этого свойства кардинально меняется внешний вид компонента. Описание значений приведено в табл. 5.5.

Таблица 5.5. Режимы отображения компонента TListview.

Значение Внешний вид
vslcon Элементы списка появляются в виде больших значков с надписью под ними. Картинки для больших значков хранятся в свойстве Largelmages. Возможно их перетаскивание
vsSmalllcon Элементы списка появляются в виде маленьких значков с надписью справа. Картинки для маленьких значков хранятся в свойстве Smallimages. Возможно их перетаскивание
vsList Элементы списка появляются в колонке один под другим с надписью справа. Перетаскивание невозможно
vsReport Элементы списка появляются в нескольких колонках один под другим. В первой содержится маленький значок и надпись, в остальных – определенная программистом информация. Если свойство ShowColumnHeaders установлено в значение True, колонки снабжаются заголовками

Как и для предыдущего компонента, элементы списка содержатся в свойстве items. Это и есть собственно список; ничего необычного, кроме методов добавления/удаления, там нет. Каждый элемент списка (объект TListitem) в свою очередь похож на компонент TTreeNode. Но у него есть и важное отличие – он может стать носителем большого количества дополнительной информации. Помимо свойства Data у него есть и свойство:

property Subltems: TStrings;

При помощи этого свойства с каждым элементом списка может быть связан целый набор строк и объектов. Но как эти строки показать пользователю?

Именно они должны, по замыслу разработчиков этого элемента управления, отображаться в режиме отображения vsReport. Сначала следует создать необходимое количество заголовков колонок (заполнив свойство columns), учитывая, что первая из них будет отведена под сам текст элемента списка (свойство caption). Последующие же колонки будут отображать текст строк из свойства Items.Subltems (рис. 5.5).

Иллюстрированный самоучитель по Delphi 7 для профессионалов › Элементы управления Win32 › Компоненты TTreeView и TListView
Рис. 5.5. Так будет располагаться информация компонента TListView в режиме vsReport

Элементы в списке могут быть отсортированы – за это отвечает свойство SortType. Можно отсортировать элементы не только по названию (это возможно при значении SortType, равном stText), но и по данным (значения stData и stBoth), как это сделано в утилите Explorer. Для реализации такой сортировки нужно обработать события OnColumnClick и OnComparel:

var ColNum: Integer;
procedure TMainForm.ListViewlColumnClick(Sender: TObject; Column:
TListColumn);
begin
ColNum: = Column.Index;
ListViewl.AlphaSort;
end;
procedure TMainForm.ListViewlCompare(Sender: TObject; Iteml, Item2:
TListltem; Data: Integer; var Compare: Integer);
begin
if ColNum = 0 then // Заголовок
Compare: = CompareStr(Iteml.Caption, Item2.Caption);
else
Compare: = CompareStr(Iteml.Subltems[ColNum-1],
Item2.Subltems[ColNum-1]);
end;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.