Цитата:
Сообщение от novashdima
Посмотрите, все ли правильно, а то вдруг утечки памяти какие и что-то подобное.
Иногда прога подвисает после приостановки и иногда возникает floating point division by zero на строке 73.
И когда останавливаю и потом заново стартую обработка начинается с прошлого места, и это связано с ошибкой выше, хотя вроде как все, что можно чищу.
Код:
.....
procedure TForm1.StartProcessClick(Sender: TObject);
begin
if AnalysThread.Suspended
then begin
AnalysThread.Resume;
*****
end
else begin
AnalysThread.Suspend;
******
end;
end;
|
Не рекомендуется насильно приостанавливать из одного потока другой. Об этом написано в справке
MSDN и
по-русски. Лучше всего сообщить потоку что он должен быть приостановлен и тогда сам поток дойдя до безопасной точки сам себя приостановит.
Цитата:
Сообщение от novashdima
Код:
Position := Round(Form1.Gauge.MaxValue / Form1.ListBox.Count * i);
|
Здесь может быть деление на ноль.
И ещё немного смущают манипуляции с StringList. Создавать его лучше по-нужде, перед использованием проверять на наличие и разрушать в завершении приложения. Либо же создавать однажды при запуске приложения и разрушать при завершении приложения.