{ %NORUN } program tb0620; type generic TTest = object procedure Test(aArg: T; aArg2: S); end; procedure TTest.Test(aArg: T; aArg2: S); begin Delete(aArg, aArg2, 4); Insert('Test', aArg, aArg2); Writeln(aArg); end; type TTestShortString = specialize TTest; TTestUnicodeString = specialize TTest; var tss: TTestShortString; tus: TTestUnicodeString; begin tss.Test('Hello World', 3); tus.Test('Hello World', 4); end.