RAD Studio (Common)
ContentsIndex
PreviousUpNext
E2167: Abstract methods must be virtual or dynamic (Delphi)

When declaring an abstract method in a base class, it must either be of regular virtual or dynamic virtual type.

program Produce;

  type
    Base = class
      procedure DaliVision; abstract;
      procedure TellyVision; abstract;
    end;

begin
end.

The declaration above is in error because abstract methods must either be virtual or dynamic.

program Solve;

  type
    Base = class
      procedure DaliVision; virtual; abstract;
      procedure TellyVision; dynamic; abstract;
    end;

begin
end.

It is possible to remove this error by either specifying 'virtual' or 'dynamic', whichever is most appropriate for your application.

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!