Thema: Delphi Fehler nach Schließen

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Fehler nach Schließen

  Alt 16. Apr 2011, 14: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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat