AGB  ·  Datenschutz  ·  Impressum  







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

Crash beim Beenden der Applikation

Ein Thema von Shark99 · begonnen am 7. Jan 2010 · letzter Beitrag vom 7. Jan 2010
Antwort Antwort
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#1

Crash beim Beenden der Applikation

  Alt 7. Jan 2010, 02:39
Hi!

Ich hab die letzten Stunden nach der Ursache für einen Programmcrash beim Beenden meiner Anwendung gesucht. Der Crash (Access Violation) ist leider keine Exception, ich bekomme zwar einen Stop vom Debugger, der ist aber irgendwo im Nirvana, d.h. Delphi zeigt mir mit [Stopped] an dass die App angehalten wurde, aber es gibt keinen Sprung zum Code der verantwortlich für den Stopp ist.

Nach viel hin und her habe ich bemerkt dass der Crash nur passiert wenn ich von der Mainform eine andere Form öffne und auf dieser sich eine bestimmte Komponente (TPlusMemo) befindet. Ohne diese Komponente beendet sich die Applikation ganz normal ohne Crash.

Ich hab durch viel herumprobieren eine Lösung gefunden, also das Crash Problem ist gelöst.

Allerdings verstehe ich nicht wieso gerade diese Lösung funktioniert und hoffe dass einer der Delphi Experten eine Erklärung hat.

Ich hab diese Zeile:

PropertiesForm := TPropertiesForm.Create(PropertiesForm); durch diese ersetzt:

Application.CreateForm(TPropertiesForm, PropertiesForm); und das Problem verschwand.

Wieso?
  Mit Zitat antworten Zitat
Tom

Registriert seit: 7. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#2

Re: Crash beim Beenden der Applikation

  Alt 7. Jan 2010, 05:25
Zitat von Shark99:
PropertiesForm := TPropertiesForm.Create(PropertiesForm);
Der übergebene Parameter für create ist der "Owner". Der Owner einer Form kann aber schlecht die Form selber sein.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#3

Re: Crash beim Beenden der Applikation

  Alt 7. Jan 2010, 09:20
Zitat von Tom:
Der übergebene Parameter für create ist der "Owner". Der Owner einer Form kann aber schlecht die Form selber sein.
Wobei es nichtmal die Form selber ist ... als Owner wird hier der "alte Wert" aus dieser Variable genommen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Crash beim Beenden der Applikation

  Alt 7. Jan 2010, 13:36
Wenn schon in dieser Form, dann so:
PropertiesForm := TPropertiesForm.Create(Application);
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:49 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