E2017 Zeigertyp erforderlicht (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Diese Fehlermeldung wird angezeigt, wenn Sie den dereferenzierenden Operator "^" auf einen Operanden anwenden, der kein Zeiger ist, und (ein Sonderfall) wenn der zweite Operand in einer Anweisung "Raise <exception> at <address>" kein Zeiger ist.


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

Obwohl Klassentypen intern als Zeiger auf die eigentlichen Informationen implementiert werden, ist es nicht zulässig, den dereferenzierenden Operator auf Klassentypen auf Quellebene anzuwenden. Dies ist außerdem nicht notwendig – der Compiler wird automatisch eine Dereferenzierung durchführen, wenn diese erforderlich ist.


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

Geben Sie einfach den dereferenzierenden Operator nicht an. Der Compiler führt dann automatisch die richtige Operation durch.