AGB  ·  Datenschutz  ·  Impressum  







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

Exception in Destroy

Ein Thema von Gruber_Hans_12345 · begonnen am 14. Jan 2008 · letzter Beitrag vom 22. Jan 2008
Antwort Antwort
Seite 1 von 3  1 23      
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#1

Exception in Destroy

  Alt 14. Jan 2008, 19:12
Hallo

Ich bin beim Umstieg von Delphi 6 auf Delphi 2007, und habe nun noch ein Problem. Und zwar, wird beim zumachen der Anwendung (im speziellen im Destroy Event des Hauptformulares) eine Exception ausgelöst.
Diese ist jedesmal etwas anderes, manchmal kommt einfach ein Fehler mit nur Adresse (anscheinend irgendwo im VMT FreeObject, manchmal, im DestroyComponents)

Ich vermute, das da einfach nur noch irgendwo eine Componente herumschwiert, die noch in der Liste des Forms ist, aber schon mal freigegeben wurde.

Ich habe auch den FastMM4 drauf, aber der meldet leider meist keinen Fehler bzw keinen sinnvollen log eintrag

Wie komme ich so einen Bug am besten auf die Schliche? In dem Form werden leider viele Komponenten zur Laufzeit erzeugt, teilweise aus einer Scriptsprache heruas ....

ich habe schon probiert vor dem Destroy.inherited alle Components[ComponentCount] zu prüfen (einfach ein zugriff auf Name bzw ClassName) um zu sehen, ob da schon eine Componente "kaputt" ist, aber da funktioniert noch alles ...
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Exception in Destroy

  Alt 14. Jan 2008, 19:15
Wie sieht dein Code aus? Wird irgendwas dynamisch erzeugt?
Markus Kinzler
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Exception in Destroy

  Alt 14. Jan 2008, 19:25
Zitat von mkinzler:
Wie sieht dein Code aus? Wird irgendwas dynamisch erzeugt?
ja, haufenweise

da werden sicher zig hundert componenten an ganz unterscheidlichen stellen neu erzeugt

ich bin mir auch sehr sicher, das es sich "nur" um eine componente handelt, die als Owner das Form hat, und von mir manuelle freigegben wurde/wird.
nur das problem ist, wie finde ich das?

Im D6 hatte ich unter anderen den memcheck drauf, der hat mir sowas immer angezeigt. (Hat auch mitgespeichert, wo das Objekt, das ich versuche ein zweites mal freizugeben, erzeugt wurde)

unter D2007 funkt das ja leider nicht mehr, und das FastMM4 zeigt mir nicht wirklich was an.
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Exception in Destroy

  Alt 14. Jan 2008, 19:29
Zitat:
ich bin mir auch sehr sicher, das es sich "nur" um eine componente handelt, die als Owner das Form hat, und von mir manuelle freigegben wurde/wird.
Und wie gibst du diese dann frei? FreeAndNil()?
Markus Kinzler
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Exception in Destroy

  Alt 14. Jan 2008, 19:33
Zitat von mkinzler:
Zitat:
ich bin mir auch sehr sicher, das es sich "nur" um eine componente handelt, die als Owner das Form hat, und von mir manuelle freigegben wurde/wird.
Und wie gibst du diese dann frei? FreeAndNil()?
das weiss ich leider nicht genau, kann beides sein, da ich nicht genau weiss, welche komponente das ist die da probleme macht.

normalerweise verwende ich ein FreeAndNil, wo ich zugriff auf die variable habe, und ein Free, wenn ich nur ein property habe ...
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

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

Re: Exception in Destroy

  Alt 14. Jan 2008, 19:34
Zitat von Gruber_Hans_12345:
ich bin mir auch sehr sicher, das es sich "nur" um eine componente handelt, die als Owner das Form hat, und von mir manuelle freigegben wurde/wird.
Die meldet sich im Destructor ordnungsgemäß vom Owner ab.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Exception in Destroy

  Alt 14. Jan 2008, 19:39
Zitat von sirius:
Zitat von Gruber_Hans_12345:
ich bin mir auch sehr sicher, das es sich "nur" um eine componente handelt, die als Owner das Form hat, und von mir manuelle freigegben wurde/wird.
Die meldet sich im Destructor ordnungsgemäß vom Owner ab.
ja, das weiss ich, und weiss auch, das es ein Bug von meiner Seite ist, nur muß es doch auch unter Delphi2007 irgendwie eine Möglichkeit geben, diesem Bug auf die Schliche zu kommen?
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Exception in Destroy

  Alt 14. Jan 2008, 19:44
Schau dir das Ganze doch im Debugger Schritt für Schritt an.
Markus Kinzler
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Exception in Destroy

  Alt 14. Jan 2008, 20:04
Zitat von mkinzler:
Schau dir das Ganze doch im Debugger Schritt für Schritt an.
Also, zur Not muß ich es eh so machen, nur möchte ich es eigetnlich vermeiden

Da das ganze im TCustomForm.Destroy bzw im TWinControl.Destroy auftritt

und dieses Form hat einige hundert Komponenten, die da freigegeben werden, und wenn ich da schritt für schritt durchgehen muß
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Exception in Destroy

  Alt 14. Jan 2008, 20:05
Dann setzte doch den Breakpoint dort.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 03:40 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