M Y D E L P H I 7 . R U Самоучитель программирования  
 
  • Главная
  •  

     

    Категория List

    В этой категории выделяются две группы действий. Первые пять из них (табл. 8.3) автоматизируют работу с выделенными элементами списков. Оставшиеся два — TStaticListAction И TVirtualListAction — требуют отдельного рассмотрения.

    Таблица 8.3. Действия по работе с выделенными элементами списков

    Действие

    Назначение

    TListControlSelectAll

    Выделяет все элементы списка. Активно, только если у списка свойство MultiSelect установлено в значение True

    TListControlClearSelection

    Отменяет выделение элементов в списке

    TListControlDeleteSelection

    Удаляет выделенные элементы

    TListControlCopySelection

    Копирует выделенные элементы списка в список Destination

    TListControlMoveSelection

    Переносит выделенные элементы списка в список Destination

    Действия работают с компонентом TListBox, а в среде Kylix — еще и с TListview (не путать с одноименным компонентом для Windows — он не годится для данной категории). Подходит также и TCоmbовох.

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

    Особняком стоят два действия TStaticListAction И TVirtualListAction

    По замыслу разработчиков они являются централизованными хранилищами элементов для многих списков. Причем элементы списка могут храниться сразу с заданными картинками (т. е. свойствами imageindex) и указателями на сопутствующие данные.

    Дальнейшее просто — разработчик выбирает нужные компоненты TListBox, TComboBox и т. п. и в их свойстве Action указывает на действие — хранилище. Опубликовано свойство Action у компонента TCоmbовохЕх (впервые появившегося в Delphi 6). У остальных потомков TControl это свойство относится к группе видимости public, поэтому вы можете сделать присвоение при запуске приложения (в методе onCreate главной формы).

    Если действие и компонент-список связаны, то должны происходить две вещи:

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

    type TItemSelectedEvent = procedure(Sender: TCustomListAction;

    Control: TControi) of object;

    property OnltemSelected: TItemSelectedEvent;