Перейти к содержанию
  • 0
Ivan B.

Выполнение операции после скрытия меню

Вопросы

Всем привет.
Приложение для Android.
Казалось бы, простая задача...

На MultiView лежит ListBox с пунктами меню.
При нажатии на пункт меню вызывается процедура (CreatePreview) (на форме в TTabControl создается вкладка, в этой вкладке создается VertScrollBox, в нем создается плитка из n-го количества TPanel'ей с картинкой и текстом).

Так вот, вызываю у MultiView метод HideMaster, затем уже эту процедуру. 
Однако, пока всё не прорисуется, меню не скрывается. А мне еще нужно индикатор выполнения процесса прикрутить.

Вопрос: как сначала скрыть меню, а уже потом выполнить процедуру или сделать это одновременно? 

Отредактировал Ivan B.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

  • 0

-Прячете листбокс
-Перерисовываете форму (точно процедуру не помню, попробуйте TForm.Refresh, TForm.RePaint, TForm.Update)
-Выполняете долгое действие

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
3 минуты назад, Barbanel сказал:

-Перерисовываете форму (точно процедуру не помню, попробуйте TForm.Refresh, TForm.RePaint, TForm.Update)

TForm.Invalidate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 1

есть более интересный и по-мне, более правильный способ

по нажатию в меню не сразу выполняете что-то, а ЗАПИСЫВАЕТЕ действие, которое ВЫПОЛНИТСЯ по событию закрытия мультивью

тогда реакция наступает визуально правильная и дальше крутите колеса, запускайте потоки и все такое

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Процедура Invalidate не перерисовывает форму немедленно, она лишь добавляет сообщение на перерисовку в очередь сообщений.
Соотв. форма перерисуется когда не будет других событий в очереди, в данном случае - после всех длительных операций или после вызова .ProcessMessages

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

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

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


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

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

×
×
  • Создать...