Announcement

Collapse
No announcement yet.

Aufzählungstyp erweitern?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Aufzählungstyp erweitern?

    Hallo,

    ich würde gerne einen (von Delphi) vorgegebenen Aufzählungstyp erweitern.

    Hier ein abstrahiertes Beispiel:
    <br>
    TBaseSet = (bsEins,bsZwei,bsDrei);
    TMySet = Low(TBaseSet)..High(TBaseSet),bsMyNew; // Geht so nicht!
    <br>
    Am Ende soll TMySet also sein: (bsEins,bsZwei,bsDrei,bsMyNew)
    <br>
    Wie gesagt: TBaseSet wäre nicht von mir beeinflussbar, weshalb mir der Ansatz über die Teilmenge nichts bringen würde!

  • #2
    Ich hätte keine Idee, wie das funktionieren soll. Was ist denn das Endziel, weßhalb die Definition eines neuen Typs nicht geht?<p>
    Mari
    Schöne Grüße, Mario

    Comment


    • #3
      Eigentlich baue ich ein Tree mit Tabellen und Feldnamen auf. Den TTreeNodes für die Feldnamen hänge ich an der Data-Property den TFieldtype an:
      aFieldNode.Data := Pointer(Ord(FieldDefs[i].DataType));
      <br>
      Dummerweise habe ich aber noch virtuelle Felder, die ich gerne über eine Erweiterung von TFieldType identifizieren würde.
      Natürlich könnte ich das ganze auch durch die Verwendung von Objekten lösen, aber vielleicht kennt ja doch jemand die "einfache" Lösung meines Problems..

      Comment


      • #4
        Dann wirst Du nicht um Objekte herumkommen. Stelle Dir den Aufzählungstyp mal nur als Sammlung von Integerzahlen vor. Der Typ wird eigentlich nur als Zeiger auf einen Speicher verwalten. Definierst Du einen neunen Typ, ist der an einer anderen Stelle im Speicher. Der Typ kann damit nicht mehr positiv verglichen werden, weil ja die Speicherstellen nicht übereinstimmen. Willst Du einen Typ erweitern, müsste Deine Erweiterung auf die Speicherzelle zeigen, die schon besetzt ist...<p>
        Fazit... nach meinem Verständnis vom internen Ablauf in Delphi dürfte Dein Vorhaben Chancenlos sein. Aber eine andere Idee:<p>
        Pointer(Ord(High(TDataType)) + 1). Einfach mit Offset zum aktuellen Typ arbeiten?<p>
        Mari
        Schöne Grüße, Mario

        Comment

        Working...
        X