System.SysUtils.FreeAndNil

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

procedure FreeAndNil(const [ref] Obj: TObject);

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure public System.SysUtils.pas System.SysUtils System.SysUtils


Beschreibung

Gibt eine Objektreferenz frei und ersetzt die Referenz durch nil (Delphi) oder NULL (C++).

Mit FreeAndNil stellen Sie sicher, dass eine Variable nach der Freigabe der Objektreferenz nil (Delphi) bzw. NULL (C++) ist. Im Parameter Obj wird eine Variable übergeben, die ein Objekt repräsentiert.

Warnung: Obj muss eine Instanz einer von TObject abgeleiteten Klasse sein.

C++ bietet jetzt zwei Template-Implementierungen von FreeAndNil, die beide Verwendungsmuster zulassen, das ältere sowie das neuere und bessere. Bei der älteren Verwendung mussten Sie die Adresse eines Klassenzeigers im Delphi-Stil wie folgt übergeben:

  TButton* button1;
  ....
  FreeAndNil(&button1);

RAD Studio In 10.4 können Sie eine Referenz zu einem Klassenzeiger im Delphi-Stil wie folgt übergeben:

  TButton *button1 = <initialization>;
  ....
  FreeAndNil(button1); // No need to take the address of 'button1'
Hinweis: Die Logik verwendet static_assert, um sicherzustellen, dass der Parameter als Zeiger auf einen Typ, der von TObject abgeleitet ist, an FreeAndNil übergeben wird. Wenn der Compiler-Fehler:
"'T' must derive from System::TObject"
angezeigt wird, wurde FreeAndNil mit einem ungültigen Parameter aufgerufen.

Siehe auch

Codebeispieles