Wie kann ich die Anzahl der Elemente einer Variablen vom Typ set erhalten?

8

AFAIK gibt es dafür keine integrierte Funktion. Suche im Internet fand ich diese Funktion und es funktioniert für mich, aber ich bevorzuge es nicht benutze es seit der Montage und ich kann nicht verstehen was es macht. Also habe ich diese Funktion geschrieben, die auch funktioniert:

%Vor%

Nun möchte ich wissen, ob ich mich auf diese Funktion verlassen kann? Oder vielleicht gibt es einen Trick hinter dem gesetzten Datentyp und deshalb hat Delphi keine eingebaute Methode dafür.

Aber if meine Funktion ist zuverlässig then Wie kann ich es verbessern:

  1. Übergeben Sie Konstanten an
  2. Führen Sie eine Typprüfung durch und stellen Sie sicher, dass eine Menge an die Funktion
  3. übergeben wird
  4. Übergeben Sie den Wert anstelle seiner Adresse
  5. Entfernen Sie SizeOfSet parameter

Ich möchte es wie Cardinality(AnySet) anstelle von Cardinality(@AnySet, SizeOf(TAnySet)) nennen.

Übrigens muss ich das sowohl in XE als auch in XE5 kompilieren.

    
saastn 23.12.2015, 19:02
quelle

2 Antworten

5

Sie können dies mit Generika und RTTI implementieren. Wie so:

%Vor%

Verwendung:

%Vor%     
David Heffernan 23.12.2015, 19:37
quelle
2

In einer früheren Version von Delphi können Sie dies tun:

%Vor%     
Anonymous 14.11.2017 14:33
quelle

Tags und Links