Why is the static keyword necessary anyway? Ideally the class keyword in front of procedure or function should already remove the hidden parameter.
Because for
classes it makes a difference whether it's declared with
static or not. For
objects the correct usage - since they predate the
class keyword - is
procedure Name; static;. That the
class keyword can be used as well is simply a remnant of classes and objects essentially sharing the same parser code.