Class Keyword


type Name = class
  class function ...;
  class procedure...;

type Name = class(BaseClass)

type Name = class(BaseClass);

type ForwardDeclaredName = class;

type Name = class(BaseClass, Interface name...)

type Name = packed class...

type MetaClass = class of Class type;


The class keyword introduces a class declaration, and it starts the declaration of a class method. If a semicolon appears immediately after the class keyword, the declaration is a forward declaration: it tells the compiler that the type name is a class type, but provides no other information about the class. You must have a complete class declaration later in the same type declaration block.

The last example above shows the declaration of a metaclass type. A variable of metaclass type can store a class reference. You can use this variable in any expression that calls for a class reference, such as calling a constructor or class method, or as the right-hand argument to an is operator. (The as operator, on the other hand, requires a static class name, not a variable class reference because it performs a type cast, and the compiler must know the target type.)

A class declaration must have a single base class and can have any number of interfaces. If you omit the base class, Delphi uses TObject. If you want to list any interfaces, you must supply the name of a base class, even if that name is TObject.

A class declaration contains zero or more ...

Get Delphi in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.