E2060 Class and interface types only allowed in type section (Object Pascal)

From Appmethod Topics
Jump to: navigation, search

Go Up to Error and Warning Messages (Object Pascal) Index

Class or interface types must always be declared with an explicit type declaration in a type section. Unlike record types, they cannot be anonymous.

The main reason for this is that there would be no way you could declare the methods of that type (since there is no type name).

Incorrect (attempting to declare a class type within a variable declaration):


program Produce;

var
  MyClass : class
    Field: Integer;
  end;

begin
end.

Correct:


program Solve;

type
  TMyClass = class
    Field: Integer;
  end;

var
  MyClass : TMyClass;

begin
end.