type
TMainForm = class(TForm)
...
private
FBreak: Boolean;
end;
procedure TMainForm.Loop;
begin
while not FBreak do
begin
DoSomething;
Application.ProcessMessages;
end;
end;
procedure TMainForm.BreakButtonClick(Sender: TObject)
begin
FBreak := True;
end;
прекратить выполнение цикла нажатием на кнопку
можно ли прекратить выполнение цикла нажатием на кнопку? Вот такой вопрос.
Цитата:
Originally posted by net
можно ли прекратить выполнение цикла нажатием на кнопку? Вот такой вопрос.
можно ли прекратить выполнение цикла нажатием на кнопку? Вот такой вопрос.
Код:
спасибочки!
поэтому можно распараллелиться:
Код:
type
TMyTaskThread = class(TThread)
protected
procedure Execute; override;
end;//of class
procedure TMyTaskThread.Execute;
begin
while not Terminated do
NextCycle;
end;
TMyTaskThread = class(TThread)
protected
procedure Execute; override;
end;//of class
procedure TMyTaskThread.Execute;
begin
while not Terminated do
NextCycle;
end;
а в обработчике OnClick поставить
Код:
MyTaskThread.Terminate;
а нитку создавать нужно так (чтобы он сам вызвал деструктор по завершении Execute)
Код:
MyTaskThread:=TMyTaskThread.Create(true);
MyTaskThread.FreeOnTerminate:=true;
MyTaskThread.Resume;
MyTaskThread.FreeOnTerminate:=true;
MyTaskThread.Resume;