Gelöst: Exeption der Klasse EAccessViolation bei DELETE
-
Hi
Ich habe in einem Programm ein Problem
es Tritt folgender Fehler auf:
Im Projekt SmartParser.exe ist eine Exeption der Klasse EAccessViolation aufgetreten.Medlung: 'Zugriffsverletzung bei Adresse 02000100. Lesen von Adresse 02000100'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortfahren.Das ganze passiert hier:
Bedinung::clean() { if(cbSpalte != NULL) //Wollte testen ob da überhaupt was drinne ist! delete cbSpalte; //Hier delete cbOperator; delete txtString; delete lblTitel; delete Panel; }Habe aber an der Methode schon länger nichts mehr geändert also recht komisch das da auf einmal ein Fehler auftritt!
Hier wird die Methode aufgerufen:
for(unsigned int i = 0; i < Form3->Gruppen.size(); i++) { delete Form3->Gruppen[i].lblTitel; delete Form3->Gruppen[i].cbTyp; delete Form3->Gruppen[i].Panel; for(unsigned int x = 0; x < Form3->Gruppen[i].Bedinungen.size(); x++) { Form3->Gruppen[i].Bedinungen[x].clean(); //Hier wird die Methode aufgerufen } Form3->Gruppen[i].Bedinungen.clear(); Form3->Gruppen[i].Bedinungen.resize(0); }Hoffe mir kann da jemand helfen!
THX
Dagsta
Lösung:
Ich hatte bereits vorher das Parent gelöscht also war das alles schon nicht mehr da!
-
Hallo
Das hatten wir doch schon mal.
Du must bei einem delete auch sicherstellen, das dann noch eine gültige Instanz an gegeben ist. Die VCL-Controls löschen automatisch alle untergeordneten Controls (also die beim Ersrellen als Owner dieses Objekt zugewiesen bekommen haben).
Eventuell hilft bereits ein Verschieben der deletesfor(unsigned int i = 0; i < Form3->Gruppen.size(); i++) { for(unsigned int x = 0; x < Form3->Gruppen[i].Bedinungen.size(); x++) { Form3->Gruppen[i].Bedinungen[x].clean(); //Hier wird die Methode aufgerufen } Form3->Gruppen[i].Bedinungen.clear(); Form3->Gruppen[i].Bedinungen.resize(0); delete Form3->Gruppen[i].lblTitel; delete Form3->Gruppen[i].cbTyp; delete Form3->Gruppen[i].Panel; }Ansonsten hilft dir nur Debuggen.
/Edit : okay, du das also schon gefunden.
bis bald
akari