Das sage ich ja "man kann auf keine Eigenschaften und Methoden eines generischen Typs zugreifen".
Logisch, wenn du keine Instanz davon hast, oder?
Delphi-Quellcode:
type
TFoo = class
private
FCaption: string;
public
procedure Bar;
property Caption: string read FCaption write FCaption;
end;
TFooContainer<T: TFoo> = class
procedure DoSomething(x: T);
end;
procedure TFooContainer<T>.DoSomething(x: T);
begin
x.Caption := 'Hello Himi';
x.Bar();
end;
procedure TFoo.Bar;
begin
ShowMessage(FCaption);
end;
var
foo: TFoo;
begin
foo := TFoo.Create;
with TFooContainer<TFoo>.Create do
begin
DoSomething(foo);
Free;
end;
foo.Free;
end;