Imam problem sa tray - exept, ne izvrše se.
Program radi OK, osim samog kraja.
Program radi sa nekoliko tredova.
Kreirao sam osnovnu klasu thred-a u kojoj su mi zajedničke funkcije
Za svaki zasebni posao koji se vrti kreirao sam thread klasu koja je nasljednik osnovne klase.
U svakoj klasi pamtim koje sam objekte kreirao (qery, tlist, tstringlist). Smještam ih u Listu: tObjectList koja je definirana u osnovnom thread-u
U Osnovno thread-u sam kreirao proceduru koja radi free svih objekata i tu proceduru pozivam na kraju Execute procedure svakog thread-a ili pri greški (podaci, pristup FTP-u, pristup bazi...) unutar tread-a kada izlazim iz Execute procedure thread-a:
try
...
tContToFree(fContToFree[i]).Kontrola.Free
...
except
on e:exception do begin
// pišem u log grešku
end;
end;
fContToFree: tObjectList
tContToFree=class
Kontrola: tObject;
Name: string;
end;
Na retku: tContToFree(fContToFree).Kontrola.Free program stane, win javi grešku: "Program.exe has stopped working. A Problem caused the program to stop working correctly...."
Dakle, try...except ne odradi svoje
Pokušao sam i kreirato proceduru (u osnovnom thread-u) koja radi free pa umjesto: "tContToFree(fContToFree).Kontrola.Free" sam pokušao:
"Synhronize(FreeMyObj)". Rezulat je isti.
Ima li tko ideju o čemu se radi?