![]() |
Objekt deinstanzieren
Hallo,
in einer Form instanziere ich ein Objekt mit
Delphi-Quellcode:
nun muss ich doch, wenn ich dieses Objekt nicht mehr brauche deinstanzieren, oder?
MyList:= TStingList.create;
mache ich das am besten mit
Delphi-Quellcode:
Wenn ich nun in einer anderen Form, zB. durch Abbruch, meine Strings, die in der Liste stehen gar nicht benutzt habe, aber auch nicht genau weiß, ob überhaupt welche drinstehen bzw. das Objekt gar nicht instanziert wurde, kann ich dann:
MyList.free?
Delphi-Quellcode:
oder wie geht das nun genau?
if FormSoUndSo.PictureList <> nil then
begin FormSoUndSo.PictureList.Free; FormSoUndSo.PictureList:= nil; end; Gruß Gambit |
Re: Objekt deinstanzieren
Moin!
1. Ja 2. Ja 3. Auch korrekt Alles richtig. Für deine 3. Frage noch 2 Zusätze: Du kannst auch anstatt dem <> Nil Vergleich auch Assigned() nutzen:
Delphi-Quellcode:
.
If Assigned(ObjektVariable) Then
Und die zweite Sache: das .Free; und := Nil setzen gibt es auch in der SysUtils als eine Funktion: FreeAndNil() MfG Muetze1 |
Re: Objekt deinstanzieren
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
[EDIT]
if Assigned( ObjektVariable ) then .....
:wall: Bin zu langsam. |
Re: Objekt deinstanzieren
Wie, so?
Delphi-Quellcode:
if assigned(FormSoUndSo.PictureList) then
begin FormSoUndSo.PictureList.Free; FormSoUndSo.PictureList:= nil; end; |
Re: Objekt deinstanzieren
Also was ich nicht so richtig aufn Schirm kriege ist:
Warum muss ich noch auf Nil setzen, wenn ich vorher mit ObjektVariable.free deinstanziert habe. Ich dachte mit ObjektVariable.free würde der Speicher schon freigegeben. Und wann benötige ich ObjektVariable.destroy? |
Re: Objekt deinstanzieren
Destroy solltest du gar nicht aufrufen, das macht Free ja für dich.
Mit Free hast du das Objekt zwar freigegeben, aber der Zeiger zeigt immer noch an die Stelle. Bei einer Abfrage auf nil (wie du es ja dann machst) knallt es dann nach dem Freigeben. |
Re: Objekt deinstanzieren
comprendo, gracias...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 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 by Thomas Breitkreuz