Hi
ich weiß nicht genau, wo mein Problem hingehört, deshalb poste ich es hier rein...
Mein Prob ist folgendes:
ich habe versucht mir einen "Compiler" für eine eigene Script-Sprache zu schreiben. Dazu habe ich eine Klasse TCompiler entworfen, die Aufgaben wie debuggen und Script ausführen übernehmen soll. Der eigentliche Debug-Vorgang funktioniert auch, aber wenn ich den Destructor der Klasse aufrufe, stürtz das Programm mit einer AccessViolation ab.
Mein Descturctor soll nichts weiter machen, als 2 StringLists "zerstören", also deren Destructor aufzurufen.
Daher sieht der Destructor so aus
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| destructor TCompiler.Destroy; begin TempScript.Free; FErrorMessages.Free; inherited; end; |
Der Aufruf der Compiler-prozeduren zum Debuggen sieht so aus
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TFormMain.DebugScript1Click(Sender: TObject); var Compiler: TCompiler; AScript: TStringList; begin AScript := TStringList.Create; AScript.Text := Memo1.Text; Compiler := TCompiler.Create; Compiler.CacheScript(AScript); Compiler.Debug; MemoErrors.Text := Compiler.ErrorMessages.Text; Compiler.Free; AScript.Free; end; |
Die Frage ist, warum die AccessViolation auftritt...
Wenn ihr den kompletten Quelltext dazu braucht, schreibt mir bitte eine Mail an
michael_kirches@gmx.de, dann kann ich euch das zuschicken. Für's Forum ist das glaube ich zu lang.
Gruß
Mike_C