Перейти к содержанию
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 пользователей онлайн

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