Категория
List
В этой категории выделяются две группы действий. Первые пять из них (табл. 8.3) автоматизируют работу с выделенными элементами списков. Оставшиеся два —
TStaticListAction И TVirtualListAction — требуют
отдельного рассмотрения.
Таблица 8.3. Действия
по работе с выделенными элементами списков
|
|
|
Выделяет все элементы списка. Активно, только если у списка свойство
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;
|