Free im Constructor ist nicht zulässig, da dann ein Zeiger auf die nicht mehr existierende Objectinstance zurückgegeben wird.
Die einzige Möglichkeit den Constructor abzubrechen ist eine
Exception.
Ich habe noch nicht verstanden was du eigentlich erreichen willst.
Vieleicht erklärst du das ausführlicher. Wahrscheinlich ist das sogar ein neues Thema.
Leitet man von einem Generic eine konkrete Klasse ab, bestimmt man damit Classname selbst.
Ist ein Object erstellt, kann man auf Object.ClassName und Object.ClassType zugreifen.
Erstellt man ein Object direkt von einem Generic, leitet Delphi selbständig eine konkrete Klasse ab.