E2017 Type pointeur requis (Delphi)

De RAD Studio
Aller à : navigation, rechercher

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

Ce message d'erreur est donné lorsque vous appliquez l'opérateur de déréférencement '^' à une opérande qui n'est pas un pointeur et, dans des cas très spéciaux, lorsque la deuxième opérande d'une instruction 'Raise <exception> at <address>' n'est pas un pointeur.


program Produce;
var
  C: TObject;
begin
  C^.Destroy;
end.

Même si les types de classe sont implémentés en interne comme des pointeurs sur les informations actuelles, il est incorrect d'appliquer l'opérateur de déréférencement aux types de classe au niveau des sources. Ce n'est également pas nécessaire : le compilateur déréférence automatiquement lorsque cela est judicieux.


program Solve;
var
  C: TObject;
begin
  C.Destroy;
end.

Laissez simplement de côté l'opérateur de déréférencement : le compilateur s'en chargera automatiquement.