AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

zugriffsverletzung bei Freeandnil

Ein Thema von renekr · begonnen am 12. Sep 2008 · letzter Beitrag vom 12. Sep 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#11

Re: zugriffsverletzung bei Freeandnil

  Alt 12. Sep 2008, 08:49
wie sieht der onClose Event des Formulars aus?
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: zugriffsverletzung bei Freeandnil

  Alt 12. Sep 2008, 08:50
Dann gehe doch mal mit dem Debugger rein.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: zugriffsverletzung bei Freeandnil

  Alt 12. Sep 2008, 08:52
Zitat von MarcoWarm:
Jede Ereignisbehandlungsroutine für das Formular oder für dessen untergeordnete Objekte sollte Release anstelle von Free (Delphi) oder Delete (C++) benutzen. Ansonsten kann ein Speicherzugriffsfehler auftreten.
Bei Show gebe ich dir recht. Bei ShowModal tritt dieses Problem nicht auf da ShowModal schon dafür sorgt das sie erst zurückkommt wenn alle Windows-Messages für das Formular abgearbeitet sind.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#14

Re: zugriffsverletzung bei Freeandnil

  Alt 12. Sep 2008, 09:01
Zitat von Bernhard Geyer:
Bei Show gebe ich dir recht. Bei ShowModal tritt dieses Problem nicht auf da ShowModal schon dafür sorgt das sie erst zurückkommt wenn alle Windows-Messages für das Formular abgearbeitet sind.
wieder was gelernt.... danke
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#15

Re: zugriffsverletzung bei Freeandnil

  Alt 12. Sep 2008, 09:13
Hi,

zusätzlich:

Delphi-Quellcode:
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;
Hast Du auch mal geprüft, ob das Form nicht schon in der .dpr erzeugt wird? Guck mal unter den Projektoptionen > Formulare nach.

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.
Frederik
  Mit Zitat antworten Zitat
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
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#17

Re: zugriffsverletzung bei Freeandnil

  Alt 12. Sep 2008, 10:49
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz