Delphi Error – E2017 Pointer type required

Delphi Compiler Error

E2017 Pointer type required

Reason for the Error & Solution

This error message is given when you apply the dereferencing operator ‘^’ to an operand that is not a pointer, and, as a very special case, when the second operand in a ‘Raise <exception> at <address>’ statement is not a pointer.

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

Even though class types are implemented internally as pointers to the actual information, it is illegal to apply the dereferencing operator to class types at the source level. It is also not necessary – the compiler will dereference automatically whenever it is appropriate.

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

Simply leave off the dereferencing operator – the compiler will do the right thing automatically.

Share:

Leave A Reply

Your email address will not be published. Required fields are marked *

You May Also Like

Delphi Compiler Error X2421 Imported identifier ‘%s’ conflicts with ‘%s’ in ‘%s’ Reason for the Error & Solution This occurs...
Delphi Compiler Error X2367 Case of property accessor method %s.%s should be %s.%s Reason for the Error & Solution No...
Delphi Compiler Error X2269 Overriding virtual method ‘%s.%s’ has lower visibility (%s) than base class ‘%s’ (%s) Reason for the...