Стандартные действия. Категории.
Категория Dialog
Эта категория примыкает к предыдущей, в ней содержатся остальные пять типовых действий-диалогов: TPrintoig, TCoiorSeiect, TFontEdit (из модуля StdActns) , TOpenPicture, TSavePicture (модуль ExtActns).
Категория Window
Эти действия стоит включать в интерфейс, только если вы используете многодокументный интерфейс (MDI). Названия компонентов говорят сами за себя: TWindowClose, TWindowCascade, TWindowTileHorizontal, TWindowTileVertical, TWindowMinimizeAll, TWindowArrange.
Категория Tab
Здесь всего два компонента – TNextTab и TPreviousTab. Если цель действия – набор страниц (TPageControl), они переключат его на следующую и предыдущую страницу соответственно.
Категория 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;