Da Delphi keine Contrains auf Enums kenn kann das nur so gehen. Eine "ESet = set of E" geht nicht.
Jo. Unelegant, aber anders geht's wohl nicht.
Delphi-Quellcode:
TClient = class
strict protected
FBla: TPropGroup<TBla, TBlaSet>;
function GetBla(): TPropGroup<TBla, TBlaSet>;
public
property Bla: TPropGroup<TBla, TBlaSet> read GetBla;
end;
Letzendlich werde ich es aber wohl lassen. Mit dem
Package wo das rein sollte ist Delphi eh schon überfordert. Und ich befürchte mit noch mehr Generics wirds noch schlimmer.
Ich würde explizit einen Typ pro Enum anlegen:
TBlaPropGroup = TPropGroup<TBla, TBlaSet>
Was ich so verstanden habe, reduziert das potentiell den Codebloat durch Generics etwas. Und lesbarer ist's vielleicht auch.