E2076 Forme d'appel de méthode autorisée seulement pour méthodes de classe (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

Vous essayez d'appeler une méthode normale en ne fournissant que le type class et non une instance actuelle.

Ceci n'est autorisé que pour les méthodes de classe et constructeurs, non pour les méthodes et destructeurs normaux.



program Produce;

type
  TMyClass = class
  (*...*)
  end;
var
  MyClass : TMyClass;

begin
  MyClass := TMyClass.Create;  (*OK, constructeur*)
  Writeln(TMyClass.ClassName); (*OK, méthode de classe*)
  TMyClass.Destroy;            (*<-- Message d'erreur ici*)
end.

L'exemple essaie de détruire le type TMyClass - ceci n'a aucun sens et est par conséquent incorrect.



program Solve;
type
  TMyClass = class
  (*...*)
  end;
var
  MyClass : TMyClass;

begin
  MyClass := TMyClass.Create;  (*OK, constructeur*)
  Writeln(TMyClass.ClassName); (*OK, méthode de classe*)
  MyClass.Destroy;             (*OK, appelé sur l'instance*)
end.

Comme vous pouvez le voir, nous voulions vraiment détruire l'instance du type, et non le type lui-même.