Перейти к содержанию
Fire Monkey от А до Я
  • 0

Изменение позиции панели жестами


zekelive

Вопрос

Доброй ночи товарищи!) Имеется такое код:

 

var
  targetX: single;
begin
  targetX:=Self.ClientWidth - 200;


  if (panel5.Position.X=targetX) then begin
    FloatAnimation1.StartValue:= targetX;
    FloatAnimation1.StopValue:= 0;
  end
  else
  begin
    FloatAnimation1.StartValue:= 0;
    FloatAnimation1.StopValue:= targetX;
  end;
  FloatAnimation1.Start;
end;

Который отлично работает, и отодвигает позицию панели, а под панелью находится Listbox. т.е. своего рода создаю меню для приложения. Но проблема в том, что не могу адаптировать этот код для жестов. Чтобы позицию панели менялась согласно координатам положения пальца на экране. Если кто сталкивался, подскажите, как это реализовать? Спасибо.

 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Ты имеешь в виду multiview? Использую этот компонет в данный момент. Но хотелось бы создать альтернативное меню, т.к. Оно куда красивее может получиться. Кастомизация)

Ссылка на комментарий
  • 0

В обработчике событий жестов есть константа "EventInfo.Location" это текущее положение пальца. Каждый раз при срабатывании обработчика запоминаешь текущую позицию и в следующий раз смотришь куда и на сколько сместился палец. И соответственно меняешь на столько координаты своей панели. Так же в этой константе есть флаги "EventInfo.Flags" из которых можно узнать сейчас палец идет по экрану или его отпустили. Проверяешь, если палец отпустили, то смотришь текущие координаты панели, и дальше решаешь что с ней делать: через анимацию двигать обратно, или завершать движение.

Изменено пользователем xenon54
Ссылка на комментарий
  • 0
  • Модераторы

Ты имеешь в виду multiview? Использую этот компонет в данный момент. Но хотелось бы создать альтернативное меню, т.к. Оно куда красивее может получиться. Кастомизация)

в чем проблема? TMultiView это просто контрол, на него можно навешать что угодно. и кастомизировать как душе угодно.

например я делаю всегда так,

TMultiView

   TRectange с заданием градиента или картинки

      TListView с прозрачностью и основные разделы (Item'ы)

      TLabel или кнопочки

всё что душе угодно + красиво и не нужно обрабатывать все ситуации что может сделать пользователь

Ссылка на комментарий
  • 0

У мультивью есть большой минус - он съедает край экрана, и если на самом краю кнопка, то мультивью не позволит ее нажать.

Это можно исправить, установить для кнопки margins, справа или слева значение, равное ToushAreaSize мультивью.

Ссылка на комментарий
  • 0

Можно сделать так: если кнопка сверху, то пусть она находится на панели, которая привязана к верху. А сам мультивью на панели Client, тогда мультивью не будет загораживать кнопки, которая сверху. Аналогично можно сделать и с кнопками, которые привязаны к низу, (Я таких не встречал)

Ссылка на комментарий
  • 0

Можно сделать так: если кнопка сверху, то пусть она находится на панели, которая привязана к верху. А сам мультивью на панели Client, тогда мультивью не будет загораживать кнопки, которая сверху. Аналогично можно сделать и с кнопками, которые привязаны к низу, (Я таких не встречал)

Хотя в моем приложени довольно таки не плохо смотрится отступ всей клиентский панели справа и слева на 20.(У меня 2 мультивью с разных сторон)

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...