Neste artigo iremos explorar Gestures, que permite interpretar e atribuir ações para gestos do usuário na própria tela de maneira incrivelmente simples, criando passo-a-passo uma aplicação com interface similar aos existentes em SmartPhones como o iPhone, que liste e reproduza arquivos mp3 utilizando o componente nativo MediaPlayer. Para a lista de músicas utilizaremos a tecnologia do ClientDataSet para salvar listas em XML e recuperá-las.
Para que serve
A tecnologia de Gestures chega como uma poderosa revolução na interface de entrada de dados, ultrapassa os limites de simples botões a serem clicados, substituindo-os pela liberdade do livre movimento. Com essa tecnologia, conseguimos de maneira eficaz implementar múltiplos comandos em um só componente de forma simples de serem entendidos pelo usuário, tornando os sistemas mais interativos.
Em que situação o tema é útil
A tecnologia de Gestures é hoje utilizada para oferecer ao usuário mais dinamismo, rapidez nos comandos com uma interface amigável, disponibilizada nativamente no Delphi 2010. Com a utilização de Gestures podemos desenvolver telas mais objetivas, que permitam ao usuário uma navegação simples e amigável. Muito vista atualmente em celulares, terminais de aeroportos, totens em shoppings, em telas de pedidos, como restaurantes por exemplo.
Resumo do DevMan
Veremos neste artigo como aplicar os recursos disponibilizados no Delphi 2010 para a criação de uma aplicação real que explora uma das sensações do mercado, que é justamente o recurso de Multitouch. Criaremos através de um passo-a-passo um mp3 player, explorando somente componentes nativos, permitindo todas as funcionalidades de um mp3player comum, que somente com a interpretação de gestos, permitirá o controle total do player, juntamente com o ClientDataSet que será utilizado para persistir as listas de músicas em formato XML.
Gestures na informática é a tecnologia de interpretação de gestos, seja movimento das mãos, faciais ou de outras partes do corpo. No Delphi 2010, a tecnologia de Gestures foi implementada pela Embarcadero de modo que o software fosse capaz de reconhecer gestos feitos na tela na área correspondente ao aplicativo. Foram implementadas três tecnologias, sendo elas a Touch, Multitouch e Gestures.
A tecnologia Touch reconhece o toque na área do aplicativo, como se fosse um clique utilizando o mouse na área tocada. MultiTouch reconhece mais de um toque simultaneamente, podendo ser utilizado para mover, rodar e redimensionar componentes utilizando o toque de dois dedos por exemplo.
A tecnologia de Gestures reconhece o gesto, ou seja, o sentido que o gesto foi feito e seu formato. Estas informações capturadas são comparadas com gestos pré-definidos ou gravados nos aplicativos e comparados, respeitando o nível de sensibilidade definido ao gravar o gesto no sistema. Um exemplo seria você fazer o gesto de uma letra “S” na tela e o aplicativo acionar um busca de produtos que iniciem por “S”.
Quando falamos de sensibilidade, estamos determinando a tolerância do sistema em aceitar desvios de rota no gesto e ainda o reconhecer. Quanto maior a sensibilidade mais rigoroso o sistema será e mais difícil será para o usuário conseguir reproduzir os gestos para disparar os eventos.
Os gestos funcionam como os eventos conhecidos, ou seja, da mesma forma que implementamos ações para o evento OnClick, podemos implementar códigos para quando um determinado gesto for detectado sobre um objeto. Os gestos deverão ser feitos sobre o componente em que a ação foi implementada para o gesto, a área de reconhecimento, que para um componente será a mesma área que o mesmo ocupa, sendo em primeiro plano ou não, dependendo de configurações que veremos mais a diante.
Componentes para suporte a Gestures e Multitouch no Delphi 2010
No Delphi 2010 foi disponibilizada a paleta Gestures, que possui componentes mostrados na Tabela 1.
É a classe que gerencia todos os gestos em uma aplicação. Disponibiliza métodos como: gravar gestos em arquivo, carregar gestos, registrar e retirar gestos referenciados a uma coleção dos mesmos. |
|
Permite que sejam gravados gestos personalizados. É nele que o usuário poderia, por exemplo, criar gestos personalizados para determinadas ações. |
|
Utilizado para visualizar um gesto gravado. |
|
Controle List View para exibir uma série de gestos. |
Tabela 1. Componentes da paleta Gestures
Somente podemos associar gestures a componentes visuais, uma vez que somente componentes visuais possuem área definida em primeiro plano na tela para que sejam interpretados os gestos. Estes componentes possuem a propriedade Touch. Dentro desta propriedade encontramos duas outras propriedades, sendo a primeira GestureManager que trata-se de onde indicamos ao componente qual o seu gestor de movimentos (Gesture Manager). Sem atribuir um Gesture Manager nesta propriedade é impossível implementar o reconhecimento de gestos no componente. Enquanto não houver nada na propriedade Touch.GestureManager, a propriedade Touch.Gestures que é onde associamos os gestos às ações exibe a mensagem Assign GestureManager, indicando que seja inserido um TGestureManager no formulário e informado na propriedade Touch.Gestures.
Após esta atribuição, a propriedade Touch.Gestures de um componente visual poderá ser expandida, abrindo duas ramificações quando possíveis, a Standard (sempre disponível) e a Custom (somente quando o GestureManager possuir algum gesto personalizado). Em Custom serão listados todos os gestos personalizados, para que seja implementada uma ação à mesma. Em Standard será aberta uma série de gestos pré-definidos no próprio Delphi. Para cada propriedade há um CheckBox que indica se o evento está ativo ou não (Enabled), um desenho representativo do gesto e o nome. O nome faz alusão direta ao gesto, por exemplo, a ação da propriedade Left será disparada sempre que for reconhecido um gesto da direita para a esquerda, seguindo uma linha semelhante ao desenho exibido. Na mesma linha de raciocínio a ação associada à propriedade Circle será disparada sempre que um gesto for feito simulando um círculo na área do objeto por exemplo.
...