Delphi Error – E2584 Weak attribute only allowed on fields and variables of type class or interface: ‘%s’

Delphi Compiler Error

E2584 Weak attribute only allowed on fields and variables of type class or interface: ‘%s’

Reason for the Error & Solution

This occurs whenever weak references are used with arrays or any other types other than classes and interfaces.

  TMyComponent = class
  private
    [Weak] GiveMe: array of Integer;   // error, an array cannot be weak.
  end;

This can be fixed by using the weak reference with a class instead:

  TMyComponent = class
  private
    [Weak] TS: TStringList; // it’s ok, a class can be weak
  end;

See Also

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...