AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Form.Free oder Form.Release bei Form.ShowModal?
Thema durchsuchen
Ansicht
Themen-Optionen

Form.Free oder Form.Release bei Form.ShowModal?

Ein Thema von littleDave · begonnen am 27. Aug 2008 · letzter Beitrag vom 27. Aug 2008
Antwort Antwort
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#1

Form.Free oder Form.Release bei Form.ShowModal?

  Alt 27. Aug 2008, 10:46
Servus

ich hab da mal kurz ne Frage:
Normalerweise soll man ja bei einer TForm-Komponente nicht direkt Free sondern Release aufrufen. Jetzt ist meine Frage, ob das auch bei .ShowModal so gilt?

Ist das richtig?
Delphi-Quellcode:
myForm := TmyForm.Create(nil)
try
  myForm.ShowModal;
finally
  myForm.Free; // <--- das hier
end;
Oder das hier?
Delphi-Quellcode:
myForm := TmyForm.Create(nil)
try
  myForm.ShowModal;
finally
  myForm.Release; // <--- oder das hier
end;
Ich bin mir gerade nicht sicher, da nach ShowModal die Form ja schonmal nicht mehr sichtbar ist und die Events OnClose und OnCloseQuery schon aufgerufen wurden.

Danke schonmal für jede Antwort
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Form.Free oder Form.Release bei Form.ShowModal?

  Alt 27. Aug 2008, 10:54
Also die Onlinehilfe von Delphi sagt eindeutig:
Zitat:
Jede Ereignisbehandlungsroutine für das Formular oder für dessen untergeordnete Objekte sollte Release anstelle von Free (Delphi) oder Delete (C++) benutzen. Ansonsten kann ein Speicherzugriffsfehler auftreten.
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#3

Re: Form.Free oder Form.Release bei Form.ShowModal?

  Alt 27. Aug 2008, 11:02
Den Absatz kenn ich auch, jedoch (dachte ich), dass nach ShowModal die Form an sich zwar noch besteht, aber keine Messages mehr empfängt. Bei nicht Modalen Forms schreib ich eigendlich auch immer Release hin, jedoch bei ShowModal bin ich mir nie ganz sicher. Es spricht zwar nichts dagegen, hier ebenfalls Release aufzurufen, jedoch wollt ich es einfach mal wissen, ob ShowModal da eine Ausnahme ist.
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Form.Free oder Form.Release bei Form.ShowModal?

  Alt 27. Aug 2008, 11:05
Zitat von littleDave:
jedoch bei ShowModal bin ich mir nie ganz sicher.
Lese dir nochmal den Satz "Jede Ereignisbehandlungsroutine für das Formular" durch. Also solange du das MyForm.ShowModal nicht aus einer MyForm-Ereignisbehand... EventHandler aufrufst (was recht schwer möglich ist), musst du das Release nicht verwenden.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Form.Free oder Form.Release bei Form.ShowModal?

  Alt 27. Aug 2008, 11:06
Zitat von littleDave:
Delphi-Quellcode:
myForm := TmyForm.Create(nil)
try
  myForm.ShowModal;
finally
  myForm.Free; // <--- das hier
end;
Oder das hier?
Also ich mache das mit meinen Forms immer so und das hat noch nie Probleme bereitet (und dürfte auch wohl richtig sein).
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#6

Re: Form.Free oder Form.Release bei Form.ShowModal?

  Alt 27. Aug 2008, 11:12
Zitat von jbg:
Lese dir nochmal den Satz "Jede Ereignisbehandlungsroutine für das Formular" durch. Also solange du das MyForm.ShowModal nicht aus einer MyForm-Ereignisbehand... EventHandler aufrufst (was recht schwer möglich ist), musst du das Release nicht verwenden.
das hab ich überlesen genau das. DANKE!

Zitat von mirage228:
Also ich mache das mit meinen Forms immer so und das hat noch nie Probleme bereitet (und dürfte auch wohl richtig sein).
Probleme hat ich auch noch nicht, jedoch wollt ich auf Nummer sicher gehen.

Danke für eure Antworten - wieder etwas schlauer geworden
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  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 23:04 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