Ich habe einen Verdacht!
Bitte starte deinen Thread nicht im OnActivate, sondern im OnCreate.
Also statt:
Delphi-Quellcode:
procedure TfrmMain.FormActivate(Sender: TObject);
var
pntUpdateThread: TUpdateThread;
begin
pntUpdateThread := TUpdateThread.Create(true);
pntUpdateThread.FreeOnTerminate := True;
pntUpdateThread.Resume;
end;
Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
var
pntUpdateThread: TUpdateThread;
begin
pntUpdateThread := TUpdateThread.Create(true);
pntUpdateThread.FreeOnTerminate := True;
pntUpdateThread.Start;
end;
Es kann nämlich durchaus sein, dass OnActivate mehrfach aufgerufen wird, das startet deinen Thread neu und ruckzuck gibt es zwei oder mehr Instanzen von deinen Thread, die alle auf das gleiche Dateihandle rummachen wollen.