Редактор горячих клавиш

Реверсивный счетчик UpDown

Еще один компонент, предназначенный для работы с диапазонами значений - это UpDown, известный так же как реверсивный счетчик. Внешне он представляет собой сдвоенную кнопку с двумя стрелками, используемыми для увеличения или уменьшения значения. Поскольку сам по себе этот компонент ничего не отображает, то его обычно ассоциируют с каким-либо другим оконным объектом, который может визуально отображать значение счетчика. Как правило, для этих целей используют однострочный редактор - Edit или любой другой компонент, который может выводить текст (многострочный редактор, ниспадающий список и т.д.).

Подключение счетчика к ассоциированному компоненту производится путем присваивания свойству Associate компонента UpDown имени нужного объекта. При ассоциировании счетчик автоматически выравнивается по правой стороне выбранного объекта. Но при помощи свойства AlignButton можно сделать так, чтобы счетчик оказался по правой стороне компонента - для этого данное свойство надо установить в значение udLeft.

Еще одно свойство компонента UpDown - Orientation может принимать значения udVertical и udHorizontal, и меняет расположение кнопок между видами вверх-вниз и влево-вправо.

Другие свойства также нам уже известны - это Min, Max и Position. Свойство же Increment отвечает на изменение значения при нажатии пользователем на стрелки клавиатуры или при щелчке мышкой по кнопке. Правда он реагирует только на нажатие стрелок вверх и вниз, а его реакцию на клавиатуру можно вообще отключить, если установить в ложь другое его свойство - ArrowKeys.

Наконец, свойство, Thousands, отвечает за то, должны или нет использоваться разделители тысяч.

Чтобы предоставить пользователю возможность указать сочетание горячих клавиш путем непосредственного их нажатия, в VCL предусмотрен специальный компонент - HotKey. Внешне он напоминает однострочный редактор, однако на этом, в общем-то, все сходство между этими компонентами заканчивается. Прежде всего, в качестве текста, отображаемого в окне редактора горячих клавиш, может выступать лишь текстовое представление одного из допустимых сочетаний. Соответственно, свойством, представляющим текущее значение этого компонента, является не Text, а HotKey.

Кроме свойства HotKey, у компонента HotKey имеется еще 2 свойства, определяющих режим его работы и поддерживаемые сочетания клавиш. Так, свойство InvalidKeys позволяет ограничить набор допустимых сочетаний. Оно представляет собой множество типа THKInvalidKey, и может включать в себя следующие значения:

· hcNone - сочетания без модификаторов (Ctrl, Alt) недопустимы - принято по умолчанию;

· hcShift - клавиша Shift не может выступать модификатором, так же принято по умолчанию (т.е., скажем, сочетание Shift+A не может быть выбрано);

· hcCtrl - клавиша Control не может выступать модификатором;

· hcAlt - клавиша Alt не может быть модификатором;

· hcShiftCtrl - сочетание Shift и Control не может быть модификатором;

· hcShiftAlt - сочетание Shift и Alt не может быть модификатором;

· hcCtrlAlt - сочетание Control и Alt не может быть модификатором;

· hcShiftCtrlAlt - cочетание Shift, Control и Alt не может быть модификатором.

При этом следует учитывать, что если, скажем, запретить в качестве модификатора сочетание Ctrl+Alt и Shift+Ctrl то это не значит, что нельзя будет выбирать сочетания Shift+Ctrl+Alt.

Помимо запретов можно устанавливать и автоматически назначаемые модификаторы. Они применяются как значения по умолчанию. Например, в том случае, если введенный пользователем модификатор недопустим, то он будет заменен модификатором, заданном в качестве шаблона при помощи свойства Modifiers. Подобно свойству InvalidKeys, свойство Modifier представляет собой множество, состоящее из 4 значений: hkShift, hkCtrl, hkAlt и hkExt. По умолчанию используется hkAlt, т.е. неподходящий модификатор будет автоматически заменяться на Alt.