Und kann das richtig sein, dass die Objekte direkt von TObject abgeleitet sein sollen - das müsste ja in einem Cast von Object zu Interface enden... ?
Stimmt, Du solltest also von TInterfacedObject ableiten, aber alle davon. Das ist die kleinste Klasse, die Interfaces und ARC unterstützt.
Auf keinen Fall eine Basisklasse erstellen, die procedure Log einführt. (Warum, können wir später nochmal besprechen.)