Загрузка значений в ListView 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Загрузка значений в ListView



Для того, чтобы не происходило перерисовки при каждом изменении вызываем BeginUpdate:

 

ListView.Items.BeginUpdate;

try

ListView.Items.Clear;

//Далее идёт код по созданию элементов списка

finally

ListView.Items.EndUpdate;

end;

 

Для создания элемента списка вызываем метод ListView.Items.Add, и задаём свойства элемента списка:

 

Пример:

 

var

LI: TListItem;

SR: TSearchRec;

LI:= ListView.Items.Add;

LI.Caption:= SR.Name; //Задаём название элемента, отображаемое в столбце №0

LI.ImageIndex:= Ord(SR.Attr and faDirectory<>0); //Выбираем код иконки узла из ImageList

LI.SubItems.Add(IntToStr(SR.Size)); //Задаём значение, отображаемое в столбце №1

 

Виртуальный ListView

Для работы в виртуальном режиме включаем свойство OwnerData:= true у ListView.

В коде задаём общее количество элементов:

 

ListView.Items.Count:= 1000000000;

 

В обработчике события OnData задаём свойства того узла, номер которого указан в его свойстве Index

Пример:

 

procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);

begin

Item.Caption:= IntToStr(Item.Index+1);

end;

 

 

Работа с компонентом TreeView. Динамическая загрузка элементов в TreeView по мере раскрытия узлов.

Компонент Дерево (TTreeView)

Сложные структуры данных в Windows обычно представляются двумя способами: в виде списка и в виде дерева. Так, например, отображается структура каталогов в Проводнике: слева иерархическая структура диска в виде раскрывающихся значков с обозначениями

"-" (развернут) и ''+'' (свернут), а справа — содержимое выбранного каталога в виде списка.

Для создания подобных деревьев, отображающих иерархические структуры данных, в системе Delphi 7 реализован компонент TTreeView.

Процесс создания дерева достаточно прост. Его начальную структуру можно сформи-

ровать в редакторе, аналогичном редактору компонента TListView, только уровень

вложенности элементов в таком списке не ограничен. У компонента TListView под-

держивался только один уровень вложенности по схеме "объект — набор свойств".

Каждому узлу дерева может соответствовать своя картинка (рис. 4.25, стр 295). Ее номер

указывается в поле редактора Image Index (Номер картинки), а сам список картинок

задается в свойстве Images. Дополнительно, для каждого узла можно указать номер

картинки, отражающей его выделенное состояние (свойство Selected Index), и номер

картинки, отражающей его дополнительное состояние (свойство State Index).

Имена узлов можно редактировать, как обычные названия объектов Windows.

Многие свойства дерева совпадают со свойствами объекта TListView, но есть и неболь-

шие отличия, вызванные необходимостью отображать неограниченные иерархии

объектов и только одним режимом работы.

Основные свойства компонента TTreeView приведены ниже. Сами узлы хра-

нятся в свойстве Items (класс TTreeNodes) и имеют тип TTreeNode. Класс TTreeNodes

содержит свойство Item — массив объектов типа TTreeNod e. Основные свойства класса

TTreeNode приведены в табл. 4.79.

ПОДСКАЗКА Доступ к узлом по номеру и, особенно, формирование новых эле-

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

Основные свойства компонента TTreeView

AutoExpand

Имеет значение True, если узлы дерева будут автоматически разворачиваться

и сворачиваться при перемещении фокуса

ChangeDelay

Пауза в миллисекундах между выделением узла дерева и генерацией

сообщения OnChange. Обработка этого сообщения позволяет, например,

отобразить содержимое данного узла в другой части формы. Для Проводника

Windows эта пауза равна 50 мс

HideSelection

Имеет значение True, если с элемента, теряющего фокус, снимается выделение

Indent

Расстояние в пикселах между узлами дерева

RightClickSelect

Имеет значение True, если разрешается выделять узлы дерева с помощью

правой кнопки мыши

ShowButtons

Имеет значение True, если слева от узлов отображаются кнопки с символами

+ и -

ShowLines

Имеет значение True, если отображаются линии, соединяющие узлы

ShowRoot

Имеет значение True, если отображаются линии, соединяющие узлы верхнего уровня

Statelmages

Список картинок для отображения дополнительного состояния узлов

ToolTips

Имеет значение True, если разрешена всплывающая подсказка для каждого узла дерева. Показывать такую подсказку надо в обработчике события OnHint



Поделиться:


Последнее изменение этой страницы: 2017-02-21; просмотров: 451; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.66.206 (0.007 с.)