Also there are no shared methods as such, each custom type would have different code for PrintSelf(), for example.
As long as they have the some number and type of parameters, that'll be fine. As H&K's description explains, it's really just a template. It's saying all objects will be able to do this, but they'll all do it differently.
With regard to storing a TPixmap, no you wouldn't. In that instance, you would have to store objects in the list, and then cast the object to your basetype before you call printself on it. So instead of casting to a type, you'd be casting to a group of types.