Bei deinem Button rufst du Thread.Terminate auf und im Thread überprüfst du, ob das Terminated-Flag gesetzt ist und brichst dann die Verarbeitung ab.
Delphi-Quellcode:
procedure StopThread;
begin
FThread.Terminate;
FThread.WaitFor;
end;
procedure TMeasThread.Execute;
begin
while not Terminated do begin
Form1.Measure; {Messung}
Synchronize(WriteToStringgrid); {übertragen der Messwerte}
// was machen
end;
end;
Dabei dürfen die einzelnen Schritte in der While-Schleife natürlich nicht ewig dauern, sonst hängt der auch bis er irgendwann wieder am Schleifenanfang ist.