Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Objekt mit Free freigegeben, dennoch Zugriff auf Felder?

  Alt 5. Sep 2010, 17:58
Wegen DSL-Ausfall bin ich etwas spät, schicke es aber ergänzend trotzdem noch los...


Das "Objekt" ist eigegentlich ein Zeiger, der auf eine bestimmte Speicherstelle Zeigt, wo dann die Daten liegen.
Wird das Objekt freigegeben, kann der Speicher wieder vom Programm für andere Daten genutzt werden.

Du kannst Dein Objekt auf "nil" setzen.

Delphi-Quellcode:
o.Free;
o := nil;
oder

FreeAndNil(o), Dann kannst Du später prüfen, ob das Objekt existiert:

if o <> nil ... oder

if Assigned(o) ...
Nur mal noch zur Vervollständigung, Du kannst Dein Objekt auch so definieren und damit Eigenschaften mit Getter- und Setter-Methode verwenden:

Delphi-Quellcode:
blObject = class(TObject)
private
  F_Name: String;
protected
  procedure Set_Name(const Value: String);
  function Get_Name: String;
public
  property _Name: String read Get_Name write Set_Name;
end;
Dann kannst Du immer o._Name := 'xxx' und S := o._Name benutzen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat