Take a look at this class:
TTest = class(TObject)   public     constructor Create(A:Integer);overload;     constructor Create(A,B:Integer);overload;   end; Now when we want to use the class:
var     test:  TTest;   begin     test:= TTest.Create; //this constructor is still visible and usable!   end; Can anyone help me with hiding this constructor?
So long as you have overloaded constructors named Create, you cannot hide the parameterless TObject constructor when deriving from TObject.
This is discussed here: http://www.yanniel.info/2011/08/hide-tobject-create-constructor-delphi.html
If you are prepared to put another class between your class and TObject you can use Andy Hausladen's trick:
TNoParameterlessContructorObject = class(TObject) strict private   constructor Create; end;  TTest = class(TNoParameterlessContructorObject) public   constructor Create(A:Integer);overload;     constructor Create(A,B:Integer);overload;   end; If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With