Метод ssmessages, сенс і застосування

Метод Application.ProcessMessages необхідно застосовувати в динамічних додатках, що вимагають негайного відображення виконаних в програмі дій. Для підвищення швидкодії програми повідомлення (Messages!), Які об'єкт Application посилає об'єктів програми, цими об'єктами виконуються не відразу після отримання, а в міру накопичення деякої черзі.

Для ілюстрації роботи методу Application.ProcessMessages розглянемо процедуру, триразовим "миготінням" тексту в рядку введення звертає увагу користувача на те, що дані не введені:

Аналогічно, програма, яка виконує тривалі обчислення, може виглядати зависла, так як навіть повідомлення на переміщення її вікна або натискання на кнопки не будуть оброблені, поки обчислення не будуть закінчені. Тому потрібно або виконувати обчислення в окремому потоці, або періодично виконувати Application.ProcessMessages. Однак, в цьому випадку потрібно враховувати, що виконання цього методу дещо гальмує виконання програми, і його виклик не повинен бути надто частим.

Інший приклад, пов'язаний з роботою з графікою в Delphi. Динаміка побудови графіків функцій, коли графік малюється поступово, у міру обчислення чергової точки, виглядає в програмі дуже ефектно. Щоб домогтися такого ефекту, також необхідно застосовувати метод Application.ProcessMessages. Обчислюючи положення черговий точки, потрібно після її виведення на полотно:

Canvas.LineTo (X [n], Y [n]);
sleep (200);

Без застосування останнього оператора ми отримаємо відразу готовий графік функції, і навіть застосування оператора затримки перед виведенням черговий точки не допоможе.