I think the proper way is to use interfaces (like in DirectX). I think its basically as described above, but your class will look like this:
[pascal]TMyClass = class(TObject, IMyInterface)[/pascal]

I have never used interfaces, though, so I don't really know anything about it except what I read in Delphi in a Nutshell.