I think ServiceLocator cannot find constructor without parameters which could be used to create instance of object so you must to pass correct parameter which will be used during constructor calling. If you want to pass external param to the constructor you could use factory interface:
1. Create factory interface:
IFactory = interface(IInvokable)
[GUID]
function Produce(AOwner: TComponent): TFDTable;
end;
2. Register
GlobalContainer.RegisterType<TFDTable>.Implements<TFDTable>;
GlobalContainer.RegisterType<IFactory>.AsFactory;
3. Use it:
var table: TFDTable := ServiceLocator.GetService<IFactory>.Produce(TableOwner);
I hope it helps.
Regards