type GenericBase = class end; GenericObject = class end; PartialContainer = partial class end; GPUCommandContainer = class(GenericBase) end; // Можно сделать пред-описанием метода, чтоб обойтись без forward procedure p1(o: PartialContainer); where T: record; forward; type // Обязательно описать предка после описания p1 PartialContainer = partial class(GPUCommandContainer>) end; procedure p0(o: GenericBase>); where T: record; begin end; procedure p1(o: PartialContainer); where T: record; begin //Ошибка: Невозможно инстанцировать, так как тип T не является размерным p0(o); end; begin p1(new PartialContainer()); end.