System.SysUtils.FreeAndNil
Delphi
procedure FreeAndNil(const [ref] Obj: TObject);
Inhaltsverzeichnis
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 angezeigt wird, wurde FreeAndNil mit einem ungültigen Parameter aufgerufen.
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"