hi,
ich moechte einen Thread laufen lassen, der einige Datenbankabfragen macht. Dies soll alles in einer Unit stehen, damit meine kollegen diesen Thread einfach in ihr programm implementieren koennen. Also versuche ich, moeglichst viel Funktionalitaet hinein zu packen. U.a. soll eine Messagebox vor Anlaufen der Datenbankabfrage darauf hinweisen, ob die Abfrage ueberhaupt gestartet werden soll. Das passiert natuerlich im execute. Nachdem der Thread dann durch ist, ich warte im hauptformular auf das terminate(onterminate:=true), setze ich den Thread mit freeand nil ko. Anschliessend mache ich im Hauptformular ein paar Sachen, zeige z.B. die Daten im grid an usw. Dann bekomme ich ab und an eine Zugriffsverletzung. Soweit sichtbar habe ich aber alle Objekte sauber erzeugt und zerstoert.
Koennte es sein, dass die Messagebox da Probleme bereitet? Wenn ja, was muss ich tun?
(zwischendurch wird uebrigens via synchronize ein tcustommemo mit Statusmeldungen der Berechnung gefuellt, als auch, am Ende des Threads ein tstringlist.savetofile zum mitprotokollieren. Das fuellen des Memofeldes mache ich, indem ich eine tstringlist erzeuge, und dann via assign an das memo uebergebe).
vielen dank
ich moechte einen Thread laufen lassen, der einige Datenbankabfragen macht. Dies soll alles in einer Unit stehen, damit meine kollegen diesen Thread einfach in ihr programm implementieren koennen. Also versuche ich, moeglichst viel Funktionalitaet hinein zu packen. U.a. soll eine Messagebox vor Anlaufen der Datenbankabfrage darauf hinweisen, ob die Abfrage ueberhaupt gestartet werden soll. Das passiert natuerlich im execute. Nachdem der Thread dann durch ist, ich warte im hauptformular auf das terminate(onterminate:=true), setze ich den Thread mit freeand nil ko. Anschliessend mache ich im Hauptformular ein paar Sachen, zeige z.B. die Daten im grid an usw. Dann bekomme ich ab und an eine Zugriffsverletzung. Soweit sichtbar habe ich aber alle Objekte sauber erzeugt und zerstoert.
Koennte es sein, dass die Messagebox da Probleme bereitet? Wenn ja, was muss ich tun?
(zwischendurch wird uebrigens via synchronize ein tcustommemo mit Statusmeldungen der Berechnung gefuellt, als auch, am Ende des Threads ein tstringlist.savetofile zum mitprotokollieren. Das fuellen des Memofeldes mache ich, indem ich eine tstringlist erzeuge, und dann via assign an das memo uebergebe).
vielen dank
Comment