Howard, yes. I have installed Mint 18.3 in a VM and I see the same.
Although the form is responsive, the progress bar advances with great leaps and the program hangs at the end.
Why is UseCThreads not default defined for Linux? I commented out the IFDEF now but I thought this should be default.
uses
{$IFDEF UNIX}{.$IFDEF UseCThreads}
cthreads,
{.$ENDIF}{$ENDIF}
For the great leaps the ProgressBar1.Smooth should be set to true.
After that the TTimer.Inverval can be set to a lower frequency, like 100.
The hanging at the end is due to the FreeAndNil(FThread).I thought you should
NEVER EVER free something in it's own even-handler (which is done here).
Comment it out and all works fine:
procedure TForm1.ThreadTerminated(Sender: TObject);
begin
// FreeAndNil(FThread);
ProgressBar1.Position := ProgressBar1.Max;
Label1.Caption := 'Complete!';
end;