[ FranjoZG @ 13.01.2020. 12:31 ] @
Delphi 2007 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: Code: 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? |