▁▁ ▁GC 2 : ▁B . T Generic Class < String >; ▁begin ▁▁ ▁GC 1 ▁:= ▁A . T Generic Class < Integer >. Create ; ▁▁ ▁GC 2 ▁:= ▁B . T Generic Class < String >. Create ; ▁▁ ▁Write L n ( GC 1 . Foo ( 1 0 0 )); ▁// ▁ 2 0 0 ▁▁ ▁Write L n ( GC 2 . Foo (' hello ')); ▁// ▁hello hello ▁▁ ▁GC 1 . Free ; ▁▁ ▁GC 2 . Free ; ▁end . ▁ ▁// ▁example ▁usage , ▁Ob j F PC ▁style ▁program ▁Test Gen Del phi ; ▁ ▁{$ if def ▁f pc } ▁▁ ▁{$ mode ▁obj f pc } ▁{$ endif } ▁ ▁uses ▁▁ ▁A , B ; ▁ ▁// ▁required ▁in ▁Ob j F PC ▁type ▁▁ ▁T A Generic Class Int ▁= ▁special ize ▁A . T Generic Class < Integer >; ▁▁ ▁T B Generic Class String ▁= ▁special ize ▁B . T Generic Class < String >; ▁var ▁▁ ▁GC 1 : ▁T A Generic Class Int ; ▁▁ ▁GC 2 : ▁T B Generic Class String ; ▁begin ▁▁ ▁GC 1 ▁:= ▁T A Generic Class Int . Create ; ▁▁ ▁GC 2 ▁:= ▁T B Generic Class String . Create ; ▁▁ ▁Write L n ( GC 1 . Foo ( 1 0 0 )); ▁// ▁ 2 0 0 ▁▁ ▁Write L n ( GC 2 . Foo (' hello ')); ▁// ▁hello hello ▁▁