Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.035 Beiträge
 
Delphi 12 Athens
 
#16

Re: Anzahl der Elemente eines Aufzählungstyps ermitteln

  Alt 9. Dez 2007, 15:37
eine allgemeine Funktion ist nicht mögilich, denn:

- Enumeratoren verfügen über keine Typeninformationen
- High/Low wird vom Compiler durch Konstanten erstetzt ... dieses sind keine Funktionen

also selbst wenn es möglich wäre alle Enum-Typen an eine Funktion zu übergeben, dann wären innerhalb der Funktion keine Informationen für High/Low verfügbar.
Heißt EnumLength kann immer nur für einen Typ erstellt werden!

allerdings liefert hier EnumLength die Werte für den Typ Integer und nicht für TMyEnum
Also: dieses funktioniert nicht.
Delphi-Quellcode:
function EnumLength(Enum: Integer): Integer;
var i: Integer;
begin
  result := 0;
  for i := Low(Integer) to High(Integer) do
    inc(result);
end;


Var X: TMyEnum;
  Y: TMyEnum2;
EnumLength(Integer(X));
EnumLength(Integer(Y));

Zusammengefasst:
direkte Lösungen wurden alle schon aufgezählt (Zusammenfassung siehe Beitrag #14)

allgemeine Funktionen sind nicht möglich.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat