The way how Delphi handles interfaces has got to be the weirdest and stupidest way that I've ever seen.
Basically, when you want to implement an interface, you automatically subscribe to implement three specific methods as well, whose only purpose is to keep track of the weird reference counting those interfaces do. From what I understand that's also the reason why in Delphi you can specify multiple interfaces alongside a class the implementing class inherits from. Delphi by itself is only single-inheritance.
Looking at different tutorials, the way people get around that issue is deriving the class from a class called TInterfacedObject whose only purpose is to implement those three methods. However, if you do that, since Delphi is only single inheritance, you lose out on the ability to derive from another class. So, if you don't want that you end up copying them anyway.
|