Что понимается под "периодичность работы потока должно корректироваться"?
По поводу состояния в Memo, то просто из потока вызываешь что-то типа:
Код:
type
TMyThread = class(TThread)
private
FMyStatua : String;
...
procedure WriteStatus;
...
end;
...
procedure TMyThread.WriteStatus;
begin
Form1.Memo1.Lines.Add('Thread status - ' + FMyStatus);
end;
procedure TMyThread.Execute;
begin
While Not Terminated Do
begin
...
FMyStatus := 'Running';
Symchronize(WriteStatus);
...
end;
FMyStatus := 'Exiting';
Symchronize(WriteStatus);
end;