Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Pascal и Delphi / Иллюстрированный самоучитель по Delphi 6 / Часть III. Компоненты и программы / Использование компонентов общего назначения / Компоненты страницы Win32 /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


TListView - список просмотра - Программирование от RIN.RU
TListView - список просмотра

Компонент TListView предназначен для показа и выбора нескольких элементов. Каждый элемент может содержать пиктограмму и текст и подобно TTreeView иметь список связанных с ним подэлементов. В отличие от TTreeview в TListView допускается не более одного уровня вложенности подэлементов. TListView показывает свои элементы в одной или нескольких колонках, с крупными или мелкими пиктограммами, а также в виде "отчетов", представляющих элементы в двухмерной таблице: по вертикали изображаются элементы верхнего уровня, по горизонтали - вложенные подэлементчатели, упрощающие множественный выбор элементов.


Компонент может наполняться как на этапе конструирования, ты. Рядом с элементами могут показываться независимые переклютак и на этапе прогона программы


Выполните следующую несложную программу, которая продемонстрирует вам основные особенности использования компонента.


На Пустую форму положите компоненты TListView, TImageList, TComboBox И TCheckBox.


  • Компонент ImageList1 будет служить контейнером для нескольких пиктограмм, отображаемых компонентом Listview. Для наполнения контейнера дважды щелкните по нему мышью или нажмите на нем правую кнопку и выберите продолжение ImageList Editor.

  • В появившемся окне редактора imageList нажмите кнопку Add и выберите файл images | ICONS | CHEMICAL[ См. замечание в начале главы. ].

  • Повторите п. 3 для выбора нескольких пиктограмм. Обратите внимание, что каждой помещаемой в imageListi пиктограмме редактор присваивает уникальный индекс.

  • Напишите такой обработчик события oncreate для формы:

    procedure TForm1.FormCreate(Sender: TObject);
    var
    k: Integer;
    Listltem: TListItem;
    begin
    with ListView1 do
    begin
    // Указываем источник изображений:
    Smalllmages := ImageList1;
    Largelmages := ImageList1;
    // Наполняем ListViewl пиктограммами и текстом:
    for k := 0 to ImageListI.Count - 1 do
    begin
    // Добавляем элемент и получаем ссылку на него
    Listltem := Items.Add;
    // Указываем индекс связанного изображения
    Listltem.Imagelndex := k;
    // Вставляем надпись ImageN
    Listltem.Caption := 'Image' + IntToStr(k);
    end;
    // Наполняем список ComboBoxl доступными стилями ListView ComboBoxl.Items.AddObject('vslcon', TObject(vslcon)) ;
    ComboBoxl.Items.AddObject('vsLisf, TObject (vsList)) ;
    ComboBoxl.Items.AddObject('vsReporf, TObject(vsReport)) ;
    ComboBoxl.Items.AddObject('vsSmall Icon',
    TObject(vsSmallIcon)) ;
    // Показываем первый стиль в Combo Box
    ComboBoxl.Itemlndex := 0;
    // Создаем колонку для режима vsReport:
    Columns.Add; Columns[0].Caption := 'Колонка T;
    Columns [.0 ] .Width := 80;
    end;
    end;


  • Напишите такие Обработчики событий ComboBoxl.OnChange И A. CheckBoxl.Click:


    procedure TFormI.ComboBoxIChange(Sender: TObject);
    begin
    with ComboBoxl do
    ListViewl.ViewStyle := TViewStyle(
    I terns.Objects[Itemlndex]) ;
    end;


    procedure TFormI.CheckBoxIClick(Sender: TObject);
    begin
    ListViewl.CheckBoxes := CheckBoxl.Checked
    end;





Некоторые важные свойства компонента:
property AllocBy: Integer;Используется перед вставкой большого количества элементов: для экономии времени и памяти перед добавлением установите в это свойство количество добавляемых элементов
property Checkboxes: Boolean;Разрешает/запрещает показ независимых переключателей рядом с элементами
property Column[Index: Integer]: TListColumn;Открывает доступ к колонкам элементов по их индексам
property ColumnClick: Boolean;Разрешает/запрещает генерацию события OnColumnClick
property Columns: TListCoiumns;Содержит объект-колонки. Используйте это свойство для удаления или добавления колонок, а также для изменения их свойств. Колонки видны только для режима View-Style = vsReport. И наоборот: элементы в этом режиме видны, только если определена хотя бы одна колонка
property GridLines: Boolean;Разрешает/запрещает показ линий в режиме ViewStyle = vsReport
property HideSelection: Boolean;Запрещает/разрешает сохранять выбор элементов при потере компонентом фокуса ввода
property HotTrack: Boolean;Разрешает/запрещает подсветку элементов, над которыми проходит указатель мыши
property IconOptions: TIconOptions;С помощью объекта класса TiconOptions задаются дополнительные условия отображения (см.ниже)
property Items: TListItems;Содержит список всех элементов
property Largelmages: TImageList;Указывает источник крупных пиктограмм
property MultiSelect: Boolean;Разрешает/запрещает множественный выбор
property Readonly: Boolean;Запрещает/разрешает редактирование надписей
property ShowColumnHeaders: Boolean;Разрешает/запрещает показ заголовков колонок в режиме ViewStyle = vsReport
property Smalllmages: TImageList; TSortType = (stNone, stData, stText, stBoth) ; Указывает источник мелких пиктограмм
property SortType: TSortType;Указывает способ сортировки элементов
property Statelmages: TImageList;Указывает источник пиктограмм для выбранных элементов
TViewStyle = (vslcon, vsSmallIcon, vsList, vsReport) ; property ViewStyle: TViewStyle;Определяет стиль показа элементов: vslcon - крупные пиктограммы; vsSmalllcon - мелкие пиктограммы; vsList - список пиктограмм; vsReport - таблица пиктограмм



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


Column Editor. Пример программного создания колонки показан на стр.483.


Класс TIconOption определяет дополнительные условия отображения узлов и имеет такие свойства:


type TIconArrangement = (iaTop, iaLeft) ; property Arrangement: TIconArrangement; Показывает способ расположения изображения: iaTop - слева направо (вверху колонки); iaLeft - сверху вниз слева от ряда колонок
property AutoArrange: Boolean;Если содержит True, элементы будут автоматически располагаться правильными рядами при изменении их количества
property WrapText: Boolean;Если содержит True, текст элемента может переноситься на границах слов на несколько строк, если он выходит за границы пиктограммы



При программном заполнении компонента центральную роль играет свойство Items класса TListItems.


Свойства класса TListItems:
property Count: Integers-property Item[Index: Integer]: TListItem;Содержит количество элементов в item Открывает индексный доступ к элементам списка
Методы класса TListItems:
function Add: TListItem;Добавляет очередной элемент к списку
procedure Assign(Source: TPersis-tent); override; procedure BeginUpdate;Связывает список компонента со списком компонента source
procedure Clear;Блокирует обновление экрана до тех пор, пока не будет выполнен метод EndUpdate. Используется при одновременной вставке нескольких элементов списка для предотвращения мерцания экрана
procedure Delete(Index: Integers)Очищает список
procedure EndUpdate;Удаляет элемент списка с индексом index
function IndexOf(Value: TListItem) : Integers;Отменяет действие BeginUpdate.Возвращает индекс узла value
function Insert(Index: Integer): TListItem; Вставляет новый элемент после элемента, заданного индексом index
procedure SetCount(Value: Integer) ;Устанавливает новое количество компонентов списка



Свойство item типа TListItem открывает индексированный доступ к подэлементам конкретного элемента верхнего уровня (допускается только два уровня иерархии элементов). За информацией по этому классу обратитесь к справочной службе Delphi.



 8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь
Прочтите карта Тинькофф Бизнес отзывы и узнайте, что думают владельцы бизнеса.