AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi eigenartiges Verhalten bei Onclose eines Formulars
Thema durchsuchen
Ansicht
Themen-Optionen

eigenartiges Verhalten bei Onclose eines Formulars

Ein Thema von SusiT · begonnen am 11. Okt 2023 · letzter Beitrag vom 13. Okt 2023
Antwort Antwort
Seite 2 von 2     12   
SusiT

Registriert seit: 15. Mai 2014
29 Beiträge
 
#11

AW: eigenartiges Verhalten bei Onclose eines Formulars

  Alt 12. Okt 2023, 20:22
Natürlich hattet Ihr Recht und ich wäre der Verlierer bei der Wette gewesen


Ich habe es nun tatsächlich so simple wie möglich aufgebaut.

In FormClose:

Action := caFree;
FormVariable := nil;

und zusätzlich werden in FormClose alle Variablen und Speicherobjekte wieder freigegeben.


Besten Dank und vielen Dank für die rege Teilnahme beim großzügigen Verteilen von freiem Wissen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: eigenartiges Verhalten bei Onclose eines Formulars

  Alt 12. Okt 2023, 20:56
FormClose?

Man gibt etwas an der Gegenstelle dessen frei, wo es erstellt wurde.

In OnClose also das, was im OnShow erstellt wurde. Hast du es wirklich dort erstellt?

PS: OnCreate->OnDestroy oder Create->Destroy aka Constructor->Destructor usw.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
SusiT

Registriert seit: 15. Mai 2014
29 Beiträge
 
#13

AW: eigenartiges Verhalten bei Onclose eines Formulars

  Alt 12. Okt 2023, 21:20
Diese Konvention hatte ich bis dato noch nicht verinnerlicht.
Macht aber auch Sinn und werde das optimieren.

Dann muss die globale Formvariable aber auch später auf nil gesetzt werden.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: eigenartiges Verhalten bei Onclose eines Formulars

  Alt 12. Okt 2023, 21:56
Stell dir einfach mal zwei Fälle vor
* die Form erstellen und zwei Mal anzeigen (Show+HideClose oder ShowModal)
* die Form erstellen und garnicht anzeigen, sondern direkt wieder freigeben

1a. Beim zweiten Mal knallt's, weil die Form weg ist
1b. Beim zweiten Mal knallt's, weil im OnClose freigegeben wurde (natürlich ohne caFree, sondern mit caHide)
2. Es wird nie freigegeben, weil OnClose garnicht aufgerufen wird
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (12. Okt 2023 um 21:59 Uhr)
  Mit Zitat antworten Zitat
DenkDirNix

Registriert seit: 13. Dez 2018
66 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: eigenartiges Verhalten bei Onclose eines Formulars

  Alt 13. Okt 2023, 06:31
Hm,
ich habe bisher OnHide als Gegenpart zum OnShow betrachtet.
Siehe hier: https://www.delphipraxis.net/156-abl...ormulares.html
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.350 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: eigenartiges Verhalten bei Onclose eines Formulars

  Alt 13. Okt 2023, 09:13
Dann muss die globale Formvariable aber auch später auf nil gesetzt werden.
Am besten setzt man diese im OnDestroy auf nil, denn danach existiert ja das Formular auch nicht mehr. Innerhalb des Formulars selbst sollte diese nie benutzt werden.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 18:02 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