Forum > Russian

Три вопроса новичка: OnPaint, ImageList и логика программы

<< < (2/6) > >>

majolika:

--- Quote from: Seenkao on February 20, 2025, 10:29:55 am ---Надо создать флаг, который будет включаться, когда проигрывается анимация.

--- End quote ---
А Timer.Enabled не может служить таким флагом?


--- Quote from: Seenkao on February 20, 2025, 10:29:55 am ---значит события ни какие не обрабатываем и выходим из обработки

--- End quote ---
А это как? С помощью Application.ProcessMessages?
Я пока так и не понял, как именно эта штука работает.

Seenkao:

--- Quote ---А Timer.Enabled не может служить таким флагом?
--- End quote ---
Можно, но не желательно. Лучше ввести свой собственный флаг (булеву переменную).


--- Quote ---А это как? С помощью Application.ProcessMessages?
--- End quote ---
в процедуре обработки, например клавиш или мыши, пишем:
  Если флаг, то
  выходим.

Вот и вся проблема.

majolika:

--- Quote from: Seenkao on February 20, 2025, 03:07:00 pm ---в процедуре обработки, например клавиш или мыши, пишем:
  Если флаг, то
  выходим.

--- End quote ---
Понял. Спасибо!
Но это будет работать только внутри контрола, к которому привязан обработчик событий (в моём случае — PaintBox).
С одной стороны — это уже полдела и хрен бы с ним, с остальным; а с другой стороны — хочется, чтобы вся программа замирала.
Но в любом случае — спасибо!

Nimbus:
Как простейшее решение, вы можете блокировать события отдельных контролов (либо всей формы), устанавливая их значение Enabled := False на нужное время.

majolika:

--- Quote from: Nimbus on February 20, 2025, 06:58:01 pm ---Как простейшее решение, вы можете блокировать события отдельных контролов (либо всей формы), устанавливая их значение Enabled := False на нужное время.

--- End quote ---
Всю форму блокировать таким способом я пробовал. Она дёргаться начинает, если кликнуть в процессе анимации. Выглядит не очень.
А вот PaintBox блокировать на время анимации — это интересная мысль. Надо попробовать. Спасибо за подсказку! :)

У меня главная беда-то какая: когда срабатывает триггер проигрыша/победы, выводится соответствующее окошко, а вот анимация получения урона продолжает проигрываться и может вылезать из-под окошка проигрыша/победы. Там анимации-то — меньше секунды, но всё равно как-то не очень хорошо.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version