If you need to change only one procedure, think helpers. I'm trying a few Interposers --- they are fine as well.
Yeah, for relatively "simple" things a helper should be preferred and not just for the "coolness" factor (which, let's be honest, it
is there

) but because they're lighter-weighted compared to a child (not by much, mind, but enough) and you code it as an
extension of the base class. Which is all class helpers really are, after all.
But as soon as you start doing even mildly "heavy" modifications to the behaviour of the base class (like, say, adding a new field) a child class (whether interposed or not) is the way to go.
Of course, it need not be instalable from a package, registable with the IDE and requiring recompilation of this last. Only when your new class is a component/control which must be insertable and modifiable at design-time (i.e. appearing in the O.I. and writable/readable to/from the form resource) it needs be so; otherwise just creating a package, opening it in the IDE and compiling it is enough for the IDE to remember where it is and you can add the package to a project's requisites, declare and use instances of the class, etc.
If anyone is interested I can make a write-up explaining the process through which I went to end up with my TMemo interposer. It's mildly interesting and entertaining and would allow anyone to understand how and why one decides between helper functions, full helpers or (interposed) child classes. Not that I'm a guru or anything like that, though ... just a little experience