In deiner Destroy-Methode wird zuerst Inherited aufgerufen, was ansich schon dafür sorgt, die Instanz von TfrmMain zu zerstören. Danach greifst du aber noch einmal auf diese bereits zerstörte Instanz zu, indem du sie auf Nil zu setzen versuchst.
Ich mache das auch manchmal, wenn ich die Form-Variable auf NIL setzen möchte. Diese Zuweisung auf NIL allein bringt auch keinen Fehler, da ja nicht mehr auf Methoden des (ehemaligen) Formulare zugegriffen wird. Das ist zugegebenermaßen nicht das schönste Pattern, aber manchmal muss man Dinge einfach auf NIL setzen.
Was ich sagen wollte: Der Fehler von Walter muss noch woanders stecken.
//Edit: Eins sehe ich gerade: Da oben wird mittels "Abort" eine stille
Exception ausgelöst. Wenn man sich aber eh schon im OnClose
Query befindet, kann man auch den Var-Parameter "CanClose" auf False setzen, wenn man das schliessen verhindern möchte.
Daniel R. Wolf
mit Grüßen aus Hamburg