AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Probleme beim Form schließen mit neuem Delphi 10.4.2

Probleme beim Form schließen mit neuem Delphi 10.4.2

Ein Thema von AuronTLG · begonnen am 11. Mai 2021 · letzter Beitrag vom 18. Mai 2021
Antwort Antwort
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
341 Beiträge
 
Delphi 12 Athens
 
#1

AW: Probleme beim Form schließen mit neuem Delphi 10.4.2

  Alt 18. Mai 2021, 14:40
Es scheint so, als hätte ich einen Workaround gefunden...

Diese Konstruktion löst den Fehler aus:

Code:
Form.Create
Form.ShowModal
Form.Release
Form := Nil
Diese nicht:

Code:
Form.Create
Form.ShowModal
Form.Free
Form := Nil
D.h. Free anstatt Release funktioniert.
Man korrigiere mich, sollte ich falsch liegen, aber ein Form.Free nach einem ShowModal sollte in keinem Fall ein Problem sein, oder gibt es Situationen, in denen damit dennoch etwas schiefgehen kann?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Probleme beim Form schließen mit neuem Delphi 10.4.2

  Alt 18. Mai 2021, 15:21
Hallo,
ich habe noch nie Form.Release benutzt.
Mag sein, dass es älteren Delphi-Versionen funktioniert hat,
aber komisch sieht der Quellcode mit dem Release schon aus.

Ah ja die Frage:
Ein Form.Free hat bei mir noch nie einen Fehler erzeugt.


Und wenn danach eh ein nil folgt -> FreeAndNil(FormX)
Heiko

Geändert von hoika (18. Mai 2021 um 15:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.756 Beiträge
 
Delphi 12 Athens
 
#3

AW: Probleme beim Form schließen mit neuem Delphi 10.4.2

  Alt 18. Mai 2021, 15:37
Release bietet sich an, wenn du das Form in einem Eventhandler freigeben willst, was bei einem Free ungefähr einem Absägen des Astes entspricht auf dem man gerade sitzt.

Das Release sorgt dafür, dass vor der Freigabe erst der aktuelle Event beendet wird und auch alle anderen Messages für das Form abgearbeitet werden. Release wird z.B. auch verwendet, wenn in einem FormClose-Event der Parameter Action auf caFree gesetzt wird.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 23:20 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