var i,x:integer;
begin
For i:=0 to 399999999 do
begin
x:=round(x+5/50*86/5);// выполняем действия
Application.ProcessMessages;
end;
end;
Именно Application.ProcessMessages и предотвращает подвисание программы. Если убрать эту строчку то программа будет "подвешана", т.е. окно нельзя будет не перетащить не изменить. Доступа к нему не будет пока все действия не будут завершены.
Просмотров: 6536
Если в программе подобных циклов десятки, а то и сотни такой подход не поможет.
Ответ: Вы не поняли смысл этого алгоритма! Он не ускоряет выполнение алгоритма, а делает так, что приложение будет перерисовываться, и не будет статуса "не отвечает"
|
Copyright © 2008 - 2018 Программирование на Delphi для начинающих и не только.
Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам.
Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации.