Pues en Delphi 2010, la clase
TObject ya dispone del siguiente metodo de clase:
Código Delphi
[-]
TObject = class
public
class function UnitName: string;
La cual retorna el nombre de la unidad del tipo de clase en cuestion, y siendo que todo deriva de
TObject
Asi que esto basicamente funciona:
Código Delphi
[-]
ShowMessageFmt('UnitName %s', [TObject.UnitName]);
ShowMessageFmt('UnitName %s', [TForm1.UnitName]);
ShowMessageFmt('UnitName %s', [DescendienteDeTObject.UnitName]);