The purpose of a class constructor is to initialize the class to a known initial state when it's created. Imagine having to different ways to start your car if you were alone or if you had passengers, just so the system that supports airbags knows whether to only activate the Driver's-side airbag or all of them.
Airbag activation based on secondary properties that can't be known until run-time (ie, how many people get into the car) is not part of the object's "initial state".
FIRST you start the car. THEN you do other things like activate the airbags.
You do NOT want to have different ways of starting the car based on factors that depend upon secondary systems.
It doesn't need to be airbags -- it could be A/C vs. Heater; driving in the day vs. at night where lights are required; etc.
Creating your objects is like starting the car and getting the engine running.
C++ and C# (among others) have a way to inject initial state data into constructors at the time of declaration vs. run-time. Delphi doesn't have that ability, so you need to inject the really core initial parameters in the Create call, and then add others AFTER the object has been initialized via property injection.