System.SysUtils.FreeAndNil

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

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

Propriétés

Type Visibilité  Source Unité  Parent
procedure public System.SysUtils.pas System.SysUtils System.SysUtils


Description

Libère une référence d'objet et remplace la référence par nil (Delphi) ou NULL (C ++).

Utilisez FreeAndNil pour vous assurer qu'une variable est nil (Delphi) ou NULL (C ++) après avoir libéré l'objet auquel elle fait référence.Passez n'importe quelle variable qui représente un objet comme paramètre Obj.

Avertissement: Obj doit être une instance d'un descendant de TObject.

C ++ propose désormais deux modèles d'implémentation de FreeAndNil qui permettent à la fois les modèles d'utilisation les plus anciens, les plus récents et les meilleurs.L'ancienne utilisation est lorsque vous deviez passer l'adresse d'un pointeur de classe de style Delphi, comme ceci:

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

RAD Studio 10.4 vous permet maintenant de passer une référence à un pointeur de classe de style delphi, comme ceci:

  TButton *button1 = <initialization>;
  ....
  FreeAndNil(button1); // No need to take the address of 'button1'
Remarque: La logique utilise un static_assert pour garantir que le paramètre passe à FreeAndNil en tant que pointeur vers un type qui dérive de TObject.Si vous voyez l'erreur du compilateur:
"'T' must derive from System::TObject"
cela signifie que FreeAndNil a été appelé avec un paramètre invalide.

Voir ausii

Exemples de code