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

Как сначала убрать Drawer а потом выполнять действие


krapotkin

Вопрос

На выдвигаемом меню MultiView лежит ListBox

procedure TClientForm.lbiOrdersClick(Sender: TObject);
begin
  mv1.HideMaster;
  mode := mOrders;
end;

в SetMode там создается фрейм, форма, в общем, что-то происходит

при этом сначала это все создается, потом естественно отрисовывается панелька

поэтому никакой видимой реакции на нажатие нет 500-800 мсек. Это, есс-но напрягает пользователя.

Если не использовать StyleBook, то при нажатии на list item выходит стандартная анимация расширяющимся кругом, там вроде все понятно

С загруженным стилем никакой анимации нет. Мои попытки подсадить туда к-нить эффекты не увенчались успехом. Даже если сначала закроется панель, а потом программа пойдет думать, это все равно уже приемлемо. Но все происходит наоборот (( Что-бы такое придумать?

-----

D10.1 Berlin. Android 4.4.2.

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

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

  • 0
  • Администраторы

Если интересует определение момента полного закрытия TMultiView, то смотрите событие:

  1. OnStartHiding - начинает закрываться
  2. OnHidden - компонент закрылся
  3. OnStartShowing - начинает открываться
  4. OnShown - компонент открылся
Ссылка на комментарий
  • 0
  • Администраторы

Для какого режима TMultiView.Mode?

Только что проверил, срабатывает один раз и на Windows и на Android для режима Drawer (Overlap)

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

У меня на пустом проекте не удается добиться двойного срабатывания. Проверьте, пожалуйста, это поведение на чистом проекте с одним TMultiView. Возможно, вы где-то в коде что-то вызываете, что приводит к двойному срабатыванию.

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

судя по стеку, вовсе не я вызываю эту цепочку...

но на пустом проекте воспроизвести тоже пока не получилось

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

Этот стек может быть реакцией на программное закрытие дровера. Так как событие вызывается в конце анимации. Поэтому в стеке вы вряд ли увидите ваш код.

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

ХА!

Приношу свои извинения. В результате сложной структуры вызова вложенных процедур получилось, что HideMaster вызывается еще раз внутри обработчика OnHidden, что и приводит к этому хитрому результату!

Хотя по идее, видимо есть смысл защититься от этого в коде обработчика

Изменено пользователем krapotkin
Ссылка на комментарий

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

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

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

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

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

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

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

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

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

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