Einzelnen Beitrag anzeigen

hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#16

Re: zugriffsverletzung bei Freeandnil

  Alt 12. Sep 2008, 09:32
Den Fehler hatte ich bisher in zwei Zusammenhängen mal gehabt.
1. Wenn in der Form Com/ActiveX verwendet wurden.
Hing damals wohl mit der Freigabe von Interfaces zusammen.

2. Ich habe TMS-Software Komponenten mit eigener Styleverwaltung verwendet.
Hier kam der Fahler irgendwo in der Nachrichtenschleife der Komponenten beim
freigeben. Da wurde wohl zu schnell der Boden unter den Füssen weggezogen.

Um diese Ursache auszuschließen, kann man erst mal versuchen nach Form.Free mit einem
Timer das Form := nil zu verzögern.

Oder als bessere Lösung:

In onClose Action := cafree setzen.
Schließt das Fenster (fast) immer korrekt.
Interessanter Weise ging hier auch ein nil.

Beispiel:
Delphi-Quellcode:
Form := TForm.Create;
...

FreeandNil(Form); --> Fehler

Form.Close;

onClose:
  Action := cafree;
  Form := nil;

funktionierte.
Ich hoffe eine Anregung wie weiter suchen.

Gruß
Peter
  Mit Zitat antworten Zitat