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

Отрисовка скрытых контролов


FeLDMARShaL

Вопрос

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

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

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

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

  • 0

Я конечно только предположил, но столкнулся что начиная с 8й версии косячно отрисовывает. И вот как оно проявляется  

http://fire-monkey.ru/topic/1210-effekt-teni/

 

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

Изменено пользователем POV
Ссылка на комментарий
  • 0
Не уверен, но думаю он Вам поможет.

 

 

 

Для моего случая это помогло проявить эффект тени у одного из статически созданных Label. И только.

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

Я бы советовал Вам посмотреть ответ Ярослава.

procedure PreloadContent(const Control: TControl);

Прям то что доктор прописал!

 

теперь другой вопрос. Представте что мы нажимаем на кнопку, в этот момент создается фрейм, на котором куча контролов. Создаются они в рантайме. Если мы вызовим эту процедру, то даже на  не слабом телефоне, весь этот процесс занимает порядка 4-5 секунд. Т.е в этот момент приложение весит. Хотелось бы иметь какойнибуть индикатор который бы крутился. Проблема в том что стандартный индикатор, или битмапфлоат анимейшн или любой другой тип анимации работает в главном потоке. Тут 2 выхода, либо процедуру создания и отрисовки выносить в отдельный поток (а я очень не люблю в потоке работать с контролами, вспоминая VCL там куча нюансов есть), либо какнибуть заставить стандартную анимацию работать в другом потоке.

Вопрос, может ктонибуть уже реализовал сие чудо? Работа со стандартной анимацией в НЕ главном потоке (Индикатора, битмап анимейшн, ... ), а в главном потоке ею управлять (запуск/стоп). Визуально это будет выгялдить как будто главный поток поввис, а в отдельном потоке крутится какойнибуть кругляшок.

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

Посмотрел fgx компоненты, сами по себе они отличные, но то что мне нужно с ними нельзя реализовать (да наверно в первоначальные постановки моей задачи такое вообще нереализуемо). Но исходники этих компонентов натолкнули меня на мысль об использовании IPleaseWaitService. В итоге сейчас использую именно его

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

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

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

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

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

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

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

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

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

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

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