Nee, die Frames werden in der Ondestroy Routine freigegeben. Ich habe einen Haltepunkt gemacht und Assigned(Frame) war nicht nil.
Kannst Du denn an der Stelle die Frame-Eigenschaften einsehen? Also Frame.Name, Frame.ClassName etc.
Wenn das fehl schlägt, ist Dein Frame vorher zerstört worden.
O.Free (O ist ein Objekt) gibt nur den Speicherbereich frei, so dass dieser wieder neu vergeben werden kann. O (als Zeiger) zeigt aber immer noch auf den bisherigen Speicherbereich (bis O auf nil gesetzt wird).
Wurde der Speicher neu vergeben (z.B. für Stringvariablen) und wird auf O wieder zugegriffen, dann gibt es i.d.R. eine
Exception.