На этой неделе мы немного обсудим нововведения в VCL, особо фокусируясь на возможностях естественного ввода (жесты и прикосновения) в RAD Studio 2010. Примите во внимание, что всё, о чём мы говорим, есть лишь бета-версия, и до релиза всё может измениться.
С помощью нового механизма вы можете выбирать разнообразные предопределённые движения вашего манипулятора (либо создавать новые, пользовательские) для того, чтобы ассоциировать их с разными действиями. Пользователям браузера Opera (и не только) это покажется знакомым. Для остальных, напомню, что Windows (а значит, и Delphi) давно содержит одно старое движение: Drag&Drop. Считайте, что этот механизм есть нечто подобное, но гораздо более мощное. Разумеется, это будет активно использоваться в программировании с использованием пера, приложениях для контент-киосков с использованием тачскрина и т.д.
Если вдаваться в детали, проясним одно положение: Delphi пытается использовать механизм обработки естественного ввода выпускающегося сейчас Windows 7. Если это невозможно (к примеру, приложение запущено на Windows XP), используется собственный механизм распознавания. Как он это делает? С помощью некоторого нововведения в языке (но это тема другого поста, конечно =)).
Давайте посмотрим на категорию «Gestures». (Нет, не обращайте внимания на две категории «Ribbon Controls» и «Touch» повыше.) Даже если, как уже сказано, у нас есть предопределённые жесты, мы можем создавать новые, собственные. Именно это и является основной задачей компонента
Разумеется, чтобы управлять нашими жестами, существует Custom Gestures Editor. Вот он:
Как вы можете видеть, возможности Editor`a включают присваивание собственных имён каждому жесту, контроль чувствительности, индивидуальное управление каждой точкой жеста (добавление/правка/удаление), приближение и удаление, демонстрацию жеста, запись нового или тестирование жеста с помощью вашего манипулятора (обычно это мышь). Интересно заметить, что он может указывать вам, если у жеста есть сходство с другими (включая встроенные), включая процентную оценку сходства. К примеру, нарисованный мною треугольник «похож на 100%» на встроенный (в терминологии Delphi «Standard»)
Теперь давайте посмотрим, как мы можем использовать жесты. На рисунке вы можете увидеть часть нового свойства
Как видно, произвольный контрол умеет реагировать на множество жестов (исходя из флажков рядом с ними). Вы можете использовать их на практике, отметив жест флажком в Object Inspector`е и написав собственный код обработки события OnGesture. Параметры события таковы:
Понятно, что второй параметр содержит всю информацию, которая нам может потребоваться.
И также вы можете заметить, что мультитач-планшеты и экраны тоже поддерживаются. Их настройки можно увидеть в нижней части изображения.
В категории «Gestures» есть другие компоненты:
К слову, в категории «Touch» есть
Два контрола TTouchKeyboard. Один с обычной, другой — с цифровой раскладкой.
Итак, этот пост был посвящён обзору возможностей естественного ввода в RAD Studio 2010. Он не планировался ни как исчерпывающее введение, ни как замена справочной системе. Но он дал общее впечатление о том, что представляет собою эта вещь.
А ваш покорный слуга постарается своевременно выкладывать на Хабрахабр переводы интересных постов о нововведениях в RAD Studio 2010, сборные или отдельные. Потому что, судя по блогам, там есть на что посмотреть.
С помощью нового механизма вы можете выбирать разнообразные предопределённые движения вашего манипулятора (либо создавать новые, пользовательские) для того, чтобы ассоциировать их с разными действиями. Пользователям браузера Opera (и не только) это покажется знакомым. Для остальных, напомню, что Windows (а значит, и Delphi) давно содержит одно старое движение: Drag&Drop. Считайте, что этот механизм есть нечто подобное, но гораздо более мощное. Разумеется, это будет активно использоваться в программировании с использованием пера, приложениях для контент-киосков с использованием тачскрина и т.д.
Если вдаваться в детали, проясним одно положение: Delphi пытается использовать механизм обработки естественного ввода выпускающегося сейчас Windows 7. Если это невозможно (к примеру, приложение запущено на Windows XP), используется собственный механизм распознавания. Как он это делает? С помощью некоторого нововведения в языке (но это тема другого поста, конечно =)).
Давайте посмотрим на категорию «Gestures». (Нет, не обращайте внимания на две категории «Ribbon Controls» и «Touch» повыше.) Даже если, как уже сказано, у нас есть предопределённые жесты, мы можем создавать новые, собственные. Именно это и является основной задачей компонента
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, сборные или отдельные. Потому что, судя по блогам, там есть на что посмотреть.