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

Включение TAniIdicator


Alesk

Вопрос

(Android) Имеется кнопка, при нажатии на которую создается еще около 50 кнопок и включается анимация "якобы раскрытия списка" TfloatAnimation. Когда нажимаешь на кнопку, при создании остальных 50 приложение немного подвисает, а потом включается анимация. Решил поставить "кружок загрузки"(TAniIndicator) чтобы было понятно что приложение не зависло, но проблема в том, что TAniIndicator включается уже тогда, когда срабатывает анимация, т.е. при нажатии на кнопку приложение подвисает, потом включается TAniIndicator одновременно с Tfloatanimation хоть и команда включения TAniIndicator расположена перед командой создания кнопок и включения Tfloatanimation.

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

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

  • 0

Application.ProcessMessages после включения TAniIndicator, может помочь показать его хотябы. Но анимации точно не будет, т.к. главный поток занят созданием кнопок.

Ссылка на комментарий
  • 0
17 часов назад, Error сказал:

Application.ProcessMessages после включения TAniIndicator, может помочь показать его хотябы. Но анимации точно не будет, т.к. главный поток занят созданием кнопок.

А если Application.ProcessMessages поставить после создания каждой кнопки - то и анимация должна появиться, только будет не совсем плавная, да и время выполнения увеличится

Ссылка на комментарий
  • 0
26 минут назад, dnekrasov сказал:

А если Application.ProcessMessages поставить после создания каждой кнопки - то и анимация должна появиться, только будет не совсем плавная, да и время выполнения увеличится

Если так, то пользователь может умудриться во время создания кнопок нажать на одну из них, что еще к большим глюкам приведет

 

Ссылка на комментарий
  • 0
7 минут назад, Error сказал:

что еще к большим глюкам приведет

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

Ссылка на комментарий
  • 0
3 минуты назад, dnekrasov сказал:

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

Конкретно здесь - рвется последовательность выполнения, создается нечто очень похожее на еще один поток.

Где гарантия что юзер не нажмет во время создания кнопок, на кнопку, которая создает еще 50 кнопок? и что произойдет в этот момент?

Изменено пользователем Error
Ссылка на комментарий
  • 0
1 минуту назад, Error сказал:

Где гарантия что юзер не нажмет во время создания кнопок, на кнопку, которая создает еще 50 кнопок? и что произойдет в этот момент?

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

Ссылка на комментарий
  • 0
8 минут назад, GASCHE сказал:

А может проще сразу создать эти кнопки а при нажатии на кнопку сделать их видимыми?

Задача "Показать пользователю что программа не висит а работает" - одна из самых долгоживущих и обсуждаемых. Так что вариантов её решения слишком много.

Конкретно в этом случае - я бы вообще отказался от индикатора и Application.ProcessMessages, а после создания каждой кнопки просто сделал бы Repaint - пусть пользователь видит как появляются новые кнопки.

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

сейчас еще модно делать чтобы у них при этом высота например росла от 0 до H 

такие анимированные штучки

правда 50 анимаций это наверное перебор

но я и не представляю экран своего телефона с 50 кнопками

Ссылка на комментарий
  • 0
1 час назад, dnekrasov сказал:

Задача "Показать пользователю что программа не висит а работает"

Мне жаль пользователя, которому придется работать с 50 кнопками если конечно это не клавиатура, но и не могу понять зачем его злить, дополнительно тормозя и без того долгий процесс вместо того чтоб пытаться сократить это время.

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

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

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

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

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

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

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

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

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

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

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