AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fehler nach Schließen

Ein Thema von Theo1994 · begonnen am 16. Apr 2011 · letzter Beitrag vom 16. Apr 2011
Antwort Antwort
mkinzler
(Moderator)

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

AW: Fehler nach Schließen

  Alt 16. Apr 2011, 11:49
Direkt gar nie, entweder werden sie von ihrem Owner freigegeben ( beim Formular Application) oder man ruft .Free auf, welches verschidene Überprüfungen ausführt und dann .Destroy aufruft).
Markus Kinzler
  Mit Zitat antworten Zitat
Theo1994

Registriert seit: 16. Apr 2011
5 Beiträge
 
#2

AW: Fehler nach Schließen

  Alt 16. Apr 2011, 12:03
ok, vielen Danke nochmal.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Fehler nach Schließen

  Alt 16. Apr 2011, 13:07
Man ruft eben nicht Destroy us, sondern Free. (sollte sogar in der OH erwähnt werden)

Zitat:
Delphi-Quellcode:
FormE.Destroy; //Eingabe-Formular schließen
Form1.Show;
Sowas Application.CreateForm(TForm1,Form1); gehört in die DPR, sonst hat dieses woanders nicht unbedingt etwas zu suchen.
> Form1 := TForm1.Create(Self); oder Form1 := TForm1.Create(FormE); Wobei ich dir dringend Empfehle diese globalen Variablen, wie FormE und Form1 garnicht zu verwenden.

Innerhalb einer Komponente nutzt man nicht die externe Variable, also innerhalb der Methoden von TFormE wird nicht FormE verwendet. höchstens Self oder man läßt es weg, wenn möglich.



So und nun zum Problem.
Wie dir schon gesagt wurde, wird das Programm beendet, wenn man die Hauptform schließt.

FormE ist deine Hauptform, da sie als erstes Erzeugt und bei Application angemeldet wurde.
FormE.Destroy; Self.Free; oder Free; , aber eigentlich besser Self.Close; oder Close; schließt die Form.

Schließen = Close
Zerstören = Destroy
Freigeben = Free

So, nun gibst du also die Hauptform frei, welches intern auch alle, bei Application registrierten, Forms schließt/freigibt.
Somit vrschwindet nun auch Form1, weswegen nun Form1.Show nicht klappen kann, aber bei dir durch einen Fehler doch zufäälig mal halbwegs gut geht.

Delphi-Quellcode:
// Application.Destroy;
Application.Free; // ...kommt der gleiche Fehler
Man gibt Application nicht frei.

Schau dir mal eine DPR an, wie se standardmäßig aussieht.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:16 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