Du darfst bei Threads nicht wie üblich die (bzw. bestimmte) Felder im constructor initialisieren, sondern du darsft das erst in Execute. Hier geht es hauptsächlich um die
DB-Kompos.
VErsuch dir folgende Strucktur anzugewöhnen:
Delphi-Quellcode:
procedure Tupdater.execute;
begin
ConInitialize(nil);
myConnection:=TxyzConnection.Create(...);
myQuery:=...
try
eigentlicher_Thread_execute;
finally
myQuery.free;
myConnection.free;
coUninitialize;
end;
end;
procedure Tupdater.eigentlicher_thread_execute;
begin
...
end;
Edit: Und die letzten 4 Zeilen in Refresh nimmst du bitte auch raus und löst das anders!
Es gibt z.B. das Ereignis onTerminate, dass du zuweisen kannst (auf doUpdate).
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.