Wait until packages are implementd in FPC?

Let's see how it's impelmented behind your code. When your class funcition calls "inherited" it's really a static call to TBaseClass_OutFunction(Self, parameter1, ...). So if you are compiling a plain DLL - compiler just don't know where destination funciton is located (unless you build in that function - i.e. compile it in the same DLL).

Sure you can try to avoid this using the same "interfaces" trick. I would go by "implements" route, but IIRC FPC does't support this [correctly?].