My method does not work . Even though constructor is in protected section the TSingleton object can be created by calling TSingleton.Create.
It seems that the visibility of the method cannot be changed in derived classes.