Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Schutzverletzung beim Beenden (https://www.delphipraxis.net/108232-schutzverletzung-beim-beenden.html)

Semmel 9. Feb 2008 11:54

Datenbank: ADS Version 8.1 • Zugriff über: Query und Table

Schutzverletzung beim Beenden
 
Wenn ich das Programm (sehr viele Fromulare ) mit Close beende bekomme immer eine Schutzverletzung.
Gebe ich in CloseQuery selber alle Formular mit Free frei

Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  Form2.Free;
  Form3.Free;
  ....
  // nicht Form1
end;
bekomme ich keine Schutzverletzung.
Meine Frage, wie macht Ihr das.
Harald

Bernhard Geyer 9. Feb 2008 11:59

Re: Schutzverletzung beim Beenden
 
Zitat:

Zitat von Semmel
bekomme ich keine Schutzverletzung.

Hast wohl irgendwo einen Fehler :mrgreen: Glaskugel ist auch gerade defekt zur bestimmung der Quellzeile. 8)

Zitat:

Zitat von Semmel
Meine Frage, wie macht Ihr das.

Beende deine DB-Connections im CloseQuery. Hatte auch mal schwierige Fehlersuche bei der BDE. Dort wurde beim beenden der Connection der Screen.Curser gesetzt obwohl die Screen-Instanz schon freigegeben wurde.

Semmel 9. Feb 2008 12:10

Re: Schutzverletzung beim Beenden
 
1.Schutzverletzung :
:00405060 TObject.InberitsFrom + $8, Quelltext kann nicht angezeigt werden

2.wenn ich die Datenbank in CloseQuery mit Free (als letzes) freigebe bekomme ich die Schutzverletzung nicht

Bernhard Geyer 9. Feb 2008 12:17

Re: Schutzverletzung beim Beenden
 
Zitat:

Zitat von Semmel
1.Schutzverletzung :
:00405060 TObject.InberitsFrom + $8, Quelltext kann nicht angezeigt werden

Debug-DCU's verwenden

Zitat:

Zitat von Semmel
2.wenn ich die Datenbank in CloseQuery mit Free (als letzes) freigebe bekomme ich die Schutzverletzung nicht

Na also. Haben wir das problem schon gelößst. Jetzt kannst du natürlich der Ursache im ADS/Tdataset-Quellcode nachgehen.

Semmel 9. Feb 2008 12:37

Re: Schutzverletzung beim Beenden
 
in Debug-DCU's kenne ich mich zu wenig aus,
nach Ihrer Antwort wird der Fehler entweder in FormDestroy wo ich die Einstellungen der Fenster in die Datenbank speichere
und die Datenbank schon vorher geschlossen wurde oder die Ursache im ADS/Tdataset liegt.

Bernhard Geyer 9. Feb 2008 12:40

Re: Schutzverletzung beim Beenden
 
Zitat:

Zitat von Semmel
in Debug-DCU's kenne ich mich zu wenig aus,

Irgendwann muß man sich auch in sowas einarbeiten ...

Zitat:

Zitat von Semmel
nach Ihrer Antwort wird der Fehler entweder in FormDestroy wo ich die Einstellungen der Fenster in die Datenbank speichere und die Datenbank schon vorher geschlossen wurde oder die Ursache im ADS/Tdataset liegt.

Eher nur auf der ADS/TDataset (VCL)-Seite.

Semmel 9. Feb 2008 12:45

Re: Schutzverletzung beim Beenden
 
Danke für die Antwort, mann lernt nie aus

Semmel 14. Feb 2008 19:58

Re: Schutzverletzung beim Beenden
 
Habe den Fehler gefunden es war nicht die ADS/TDataset Komponente
sondern in der TMS Toolbar Komponente eine einzige Zeile
Die Schutzverletzung trat nur auf wenn man ein Fenster während der Laufzeit erzeugte und mit Free wieder freigibt

Bernhard Geyer 14. Feb 2008 20:05

Re: Schutzverletzung beim Beenden
 
Zitat:

Zitat von Semmel
Die Schutzverletzung trat nur auf wenn man ein Fenster während der Laufzeit erzeugte und mit Free wieder freigibt

Ein Nicht-Modales Fenster? Das ist dann kein Fehler von TMS sondern Nicht-Modale Fenster müssen mit .Release freigegeben werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 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