![]() |
Re: zugriffsverletzung bei Freeandnil
wie sieht der onClose Event des Formulars aus?
|
Re: zugriffsverletzung bei Freeandnil
Dann gehe doch mal mit dem Debugger rein.
|
Re: zugriffsverletzung bei Freeandnil
Zitat:
|
Re: zugriffsverletzung bei Freeandnil
Zitat:
|
Re: zugriffsverletzung bei Freeandnil
Hi,
zusätzlich:
Delphi-Quellcode:
Hast Du auch mal geprüft, ob das Form nicht schon in der .dpr erzeugt wird? Guck mal unter den Projektoptionen > Formulare nach.
try
form3.showmodal; finally if Assigned(form3) then // so bitte nicht, hatten wir ja schon oft im Forum: // if Assigned(form3) = true then FreeAndNil(Form3); end; Gruß Assertor "Der, der bisher nie mit FreeAndNil(FormXYZ) eine Exception bekommen hat" ;) Edit: Ich denke, es geht bei Release eher um die Freigabe eines Forms durch sich selbst innerhalb der eigenen Ereignisbehandlungsroutinen, damit die Eventhandler zum Ende trotzdem korrekt abgearbeitet werden und der Event-Routine nicht selbst der Boden unter den Füßen weggezogen wird. Ein externes Free/FreeAndNil sollte prinzipiell kein Problem sein. |
Re: zugriffsverletzung bei Freeandnil
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:
Ich hoffe eine Anregung wie weiter suchen.
Form := TForm.Create;
... FreeandNil(Form); --> Fehler Form.Close; onClose: Action := cafree; Form := nil; funktionierte. Gruß Peter |
Re: zugriffsverletzung bei Freeandnil
Hi,
verdamm. Mis.. Ich hatte das Problem auch schon öfters. Bin durchs reindebuggen wieder draufgestoßen. Habe letzte Woche die TMS Komponenten upgedatet und leider ist in der destructor TAdvDBLookupComboBox.Destroy noch ein Fehelr drin. Beim FreeBookmark krachts . Werde es mal Untersuchen und an TMS Support mailen. Sry für die Belästigung. Aber trotzdem Danke für die Infos.Diese waren in bez. Release und Freigeben auch sehr nützlich. Schönes Weekend. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz