
С помощью нового механизма вы можете выбирать разнообразные предопределённые движения вашего манипулятора (либо создавать новые, пользовательские) для того, чтобы ассоциировать их с разными действиями. Пользователям браузера Opera (и не только) это покажется знакомым. Для остальных, напомню, что Windows (а значит, и Delphi) давно содержит одно старое движение: Drag&Drop. Считайте, что этот механизм есть нечто подобное, но гораздо более мощное. Разумеется, это будет активно использоваться в программировании с использованием пера, приложениях для контент-киосков с использованием тачскрина и т.д.
Если вдаваться в детали, проясним одно положение: Delphi пытается использовать механизм обработки естественного ввода выпускающегося сейчас Windows 7. Если это невозможно (к примеру, приложение запущено на Windows XP), используется собственный механизм распознавания. Как он это делает? С помощью некоторого нововведения в языке (но это тема другого поста, конечно =)).

TGestureManager
. Он может содержать пользовательские жесты для компонентов (нечто вроде TActionManager
) и может хранить эти жесты в файле.Разумеется, чтобы управлять нашими жестами, существует Custom Gestures Editor. Вот он:

Как вы можете видеть, возможности Editor`a включают присваивание собственных имён каждому жесту, контроль чувствительности, индивидуальное управление каждой точкой жеста (добавление/правка/удаление), приближение и удаление, демонстрацию жеста, запись нового или тестирование жеста с помощью вашего манипулятора (обычно это мышь). Интересно заметить, что он может указывать вам, если у жеста есть сходство с другими (включая встроенные), включая процентную оценку сходства. К примеру, нарисованный мною треугольник «похож на 100%» на встроенный (в терминологии Delphi «Standard»)
sgiTriange
. Поскольку они так похожи, я удалил свой жест и записал новый, под именем «Untitled» (я иногда такой ленивый...) в форме буквы Z.
Touch: TTouchManager
так, как оно отображается в Object Inspector`е. Естественно, это свойство появляется практически везде в VCL, будучи объявлевленным в TControl
. В группе Touch.Gestures.Custom
вы можете заметить мой собственный жест в форме «Z». Ветка «Standard» содержит встроенные жесты: наиболее общие, предлагаемые по умолчанию. Они поддерживаются каждым компонентом. Но чтобы они отображались, вы должны связать компонент с TGestureManager
, что фактически влечет за собой линковку с модулем, в котором объявлены эти стандартные жесты.Как видно, произвольный контрол умеет реагировать на множество жестов (исходя из флажков рядом с ними). Вы можете использовать их на практике, отметив жест флажком в Object Inspector`е и написав собственный код обработки события OnGesture. Параметры события таковы:
- Sender: TObject;
- const EventInfo: TGestureEventInfo;
- var Handled: Boolean;
Понятно, что второй параметр содержит всю информацию, которая нам может потребоваться.
И также вы можете заметить, что мультитач-планшеты и экраны тоже поддерживаются. Их настройки можно увидеть в нижней части изображения.
В категории «Gestures» есть другие компоненты:
TGestureListView
, наследник TCustomListView
, отображающий названия жестов вместе с миниатюрами для быстрого узнавания. Часто очень пригождается. TGesturePreview
есть в точности то, как он и называется: контрол, который может отображать анимацию в форме указанного жеста. Кстати говоря, в вашем распоряжении достаточно свойств, чтобы настроить его внешний вид как угодно. И, конечно же, TGestureRecord
— простая панель, которая умеет считывать рисующийся на ней жест.К слову, в категории «Touch» есть
TTouchKeyboard
— компонент экранной клавиатуры, обычной для приложений контент-киосков или планшетных. Приятная особенность — свойство Layout
, позволяющее вам получить боковую клавиатуру вместо обычной.
Два контрола TTouchKeyboard. Один с обычной, другой — с цифровой раскладкой.
Итак, этот пост был посвящён обзору возможностей естественного ввода в RAD Studio 2010. Он не планировался ни как исчерпывающее введение, ни как замена справочной системе. Но он дал общее впечатление о том, что представляет собою эта вещь.
А ваш покорный слуга постарается своевременно выкладывать на Хабрахабр переводы интересных постов о нововведениях в RAD Studio 2010, сборные или отдельные. Потому что, судя по блогам, там есть на что посмотреть.