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

Анимация пока создается форма


TTTimon

Вопрос

В проекте несколько форм: есть главная (меню) + ИСТОРИЯ (достаточно тяжелая форма) + другие

Задача:

по нажатию в МЕНЮ на кнопку, начинается создание ИСТОРИИ и в это время проигрывается FloatAnimation для вращения индикатора (это круг с изображением).

нужно по завершению создания формы прекратить анимацию и показать форму

 

Как делаю:

  • на главной форме есть F: TForm;
  • при создании формы: F := nil;
  • при нажатии на кнопку: 1) стартует анимация 2) F := TF_History.Create(nil);
  • в процессе проверяю создание формы (если создалась, то стоп)

procedure TF_Main.FloatAnimation1Process(Sender: TObject);
begin
  if Assigned(F) then FloatAnimation1.Stop;
end;

  • в стопе показываю форму

procedure TF_Main.FloatAnimation1Finish(Sender: TObject);
begin
  F.Show;
end;

 

Ошибка: приложение вылетает с ошибкой "stack overflow"!

P.S. Не совсем понимаю где копать, да и если у кого есть решение получше, буду только рад!)

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

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

  • 0

Добрый день!

1. Посмотрите стек при возникновении "stack overflow", та будет видно, что привело к проблеме.

2. Анимации не будет. Анимация работает в основном потоке приложения. Создание формы тоже происходит в основном потоке, т.е на время создания формы анимация остановиться.

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

отсюда еще раз мораль. не нужно длительные действия выполнять в основном потоке.

FormCreate должна всего лишь запускать поток, который считывает и подготавливает все что нужно. А при завершении потока заполняем компоненты на форме.

Так что крутить анимацию должна уже вторая форма в то время пока данные готовятся.

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

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

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

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

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

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

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

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

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

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