Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.527 Beiträge
 
Delphi 12 Athens
 
#15

AW: Gibt es keine generischen Proceduren?

  Alt 11. Jan 2025, 23:57
Generisch mit Set geht erstmal nicht, da es keinen generischen Constraint dafür gibt. Folglich kann man auch die Operatoren nicht anwenden.
(Vielleicht könnte man mit RTTI und ein paar bösen Hacks und dem Glauben an die Unfehlbarkeit des Entwicklers was hinkriegen, aber das gehört hier nicht hin)

Du kannst aber zu einem Set einen Helper schreiben - muss halt wegen obiger Einschränkung für jedes Set separat gemacht werden:
Delphi-Quellcode:
type
  TMyEnum = (Enum1, Enum2, Enum3, Enum4);
  TMyEnums = set of TMyEnum;
  TMyEnumsHelper = record helper for TMyEnums
    function DoesNotContain(const Value: TMyEnums): Boolean;
  end;

function TMyEnumsHelper.DoesNotContain(const Value: TMyEnums): Boolean;
begin
  Result := (Self * Value) = [];
end;
Dein Beispiel würde dann so geschrieben:
Delphi-Quellcode:
If lSet1.DoesNotContain([Enum1, Enum2]) and lSet2.DoesNotContain([Enum1, Enum3]) then begin
 
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat