Укажи конструктор как виртуальный и дефолтное значение присвяивай в конструкторе. Если сделать конструктор виртуальным, то дефолтный конструктор без параметров будет невиден. Обращаться к объекту до его создания нельзя.
Код:
type
TMyClass = class
...
public
constructor Create(AParam : String); virtual; // теперь Create() "невиден"
end;