Delphi Firemonkey. Жесты/Gestures



Сегодня мы рассмотрим использование стандартных жестов в Delphi firemonkey.

Жесты являются одним из основных элементов управления на сенсорных устройствах. Поэтому без их изучения сложно представить дальнейшее программирование под android.

На экранах смартфонов часто не хватает места для размещения всех компонентов. Для примера возьмем калькулятор из одного из предыдущих уроков(не обязательно делать все как на скриншотах, достаточно тех компонентов, которые описываются в этом уроке ). Наша задача: при проведении пальцем по экрану справа налево, открыть невидимую панель с дополнительными функциями. А при проведении слева направо скрыть эту самую панель.Вот небольшой пример(открытая скрытая панель доп. функций):



На форме нам понадобится Layout(свойство align назначаем alRight, свойство visible=false). На layout’е размещаем 4 кнопки. Основной компонент, который нам нужен – GestureManager.

Итак, изначально у нас на форме невидимая панелька с четырьмя кнопками.
Раскройте свойство touch нашей формы и подсвойству gesturemanager назначьте наш gesturemanager1. После этого в свойствах вам откроется вкладка Gestures, а затем standart. В standart нам нужно отметить галочками 2 пункта как на скриншоте, с требуемыми жестами.



Далее, создаем событие OnGestures для нашей формы, вот его код:

procedure TForm1.FormGesture(Sender: TObject;
  const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin
 case EventInfo.GestureID of //проверка того, какой жест был использован
  sgiLeft:begin layout3.Visible:=true; // жест справа налево, значит делаем нашу панель видимой
   // остальной код(кроме последних строчек) используется для калькулятора. 4 кнопки дополнительных                  
   //функций(SIN,COS...) выравниваются по
   //размерам и по позиции с другими кнопками
   button15.Height:=button4.Height;
   button15.Width:=button4.Width;
   button15.Position.y:=button4.Position.Y;
 
   button17.Height:=button8.Height;
   button17.Width:=button8.Width;
   button17.Position.y:=button8.Position.Y;
 
   button18.Height:=button12.Height;
   button18.Width:=button12.Width;
   button18.Position.y:=button12.Position.Y;
 
   button19.Height:=button16.Height;
   button19.Width:=button16.Width;
   button19.Position.y:=button16.Position.Y;
 
   end;
 
  sgiRight: layout3.Visible:=false ;//скрываем панель при жесте слева направо
end;
end;


Также вы можете использовать не стандартные жесты, а рисовать свои(об этом в другой раз), но как правило, стандартных жестов хватает практически для любого случая. Удачи!
Теги:
FireMonkey
Добавлено: 21 Февраля 2015 20:29:10 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...