![]() |
"with"-variable?
Ich habe folgenden Code:
Delphi-Quellcode:
Was muss anstelle der ??? hin? Also ich möchte die oben erstellte Varible free'n und nil'n...? Ist es "self"?
with TfrmSettings.Create(nil) do
try ShowModal(nil); finally FreeAndNil(???); end; Also "self" ist es nicht: Zitat:
|
Re: "with"-variable?
Hallo,
da geht nur Free! Da du keine Variable benutzt, kannst Du auch nichts auf nil setzen. |
Re: "with"-variable?
Achso ;) Ist ja auch irgendwie logisch :D
Aber was wäre jetzt wenn ich die Variable doch bräuchte? Also z.B. für Showmessage o.ä.? |
Re: "with"-variable?
Zitat:
Delphi-Quellcode:
Zumal with sowieso n komisches Konstrukt is...
var
Objekt: TKlasse; begin Objekt := TKlasse.Create; try Objekt.Eigenschaft := Wert; finally FreeAndNil(Objekt); // oder in dem Fall reicht auch Free Objekt.Free; end; mfg Christian |
Re: "with"-variable?
Zitat:
Delphi-Quellcode:
Gruß Jürgen
var stg: TfrmSettings;
// usw. stg = TfrmSettings.Create(nil); try stg.ShowModal; finally FreeAndNil(stg); end; [/edit]ohne rote Karte... |
Re: "with"-variable?
Oder du kombinierst die beiden Möglichkeiten:
Delphi-Quellcode:
var
Objekt: TKlasse; begin Objekt := TKlasse.Create; with Objekt do ... end; |
Re: "with"-variable?
Zitat:
Abe danke @ all ;) |
Re: "with"-variable?
Wofür zum Geier brauchst du FreeAndNil wenn du gar keine greifbare Referenz hast, die nach dem Free auf einen ouchy banana-Bereich zeigt?
Lass mich raten: Pawlow? Du siehst Create und denkst gleich an "FreeAndNil" weil dir irgendwann irgendjemand gesagt hat es sein besser, right? Ich benutze fast nie FreeAndNil, schlicht und ergreifend weil ich hauptsächlich Dinge freigebe, die danach eh aus'm Scope flutschen oder im "Destruktor". ;) btw: Es ist aber immer ein guter Tip nicht "with" zu benutzen. "with" in Delphi ist einfach zu diffus. |
Re: "with"-variable?
Ich benutze auch immer FreeAndNil. Habe ich mir angewöhnt, damit, wenn man doch mal mit Assigned prüfen muss, nicht auf die Fresse fällt.
|
Re: "with"-variable?
Zitat:
Das ist hier nicht der Fall. Genauso wenig wie es in einem Destruktor der Fall ist, oder am Ende einer Methode. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 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