Why do I have to declare class property accessors as static

I know its required in C, but I am not using C. By default in Delphi, the methods are static. This compiles fine.

    class function GetStatus       (AIdx : TStatus) : string;
    class function GetStatusByChar (AChr : Char)    : string;

    class property Status         [AIdx : TStatus] : string
                                                     read GetStatus;
    class property Status_By_Char [AChr : Char]    : string
                                                     read GetStatusByChar;

But to get rid of zillion of red tags from the LSP, I have to mark them as static

    class function GetStatus       (AIdx : TStatus) : string;  static;
    class function GetStatusByChar (AChr : Char)    : string;  static;

It compiles?

Edit : [ Oh, ok. For classes. I was automatically assuming records. ]

A class method gets a self. (of the class)

While a class static method is pretty much just a method
Though it can access private members of an instance of the class.
Though I guess this is true for most any method in that same source file.

It really hadn’t actively occurred to me before that a class method in a class would have a Self = the class type.

Do records need to have the ‘static’ in order to have the same?