Danke
Ja sowas in der Art. (Das von Rollo62 funktioniert vielleicht auch, aber sicher nicht für diesen Anwendungszweck.
Erster Knackpunkt war Dein Vorschlag den Aufzählungstyp und die Menge separat anzugeben. Da Delphi keine Contrains auf Enums kenn kann das nur so gehen. Eine "ESet = set of E" geht nicht.
Mein letzter Stand ist der:
Delphi-Quellcode:
type
TBla = (a, b, c);
TBlaSet = set of TBla;
TBlub = (l, m, o, p);
TBlubSet = set of TBlub;
TPropGroup<E, S> = class
private
FActive : E;
FSupported: S;
FAvailable: S;
procedure SetActive(Value: E);
function GetActive(): E;
function GetSupported(): S;
function GetAvailable(): S;
public
property Active : E read GetActive write SetActive;
property Supported: S read GetSupported;
property Available: S read GetAvailable;
end;
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.