Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Gegenteil von ORD?
Tower - Fr 21.02.03 10:31
Titel: Gegenteil von ORD?
Ähm...
mal eine ganz blöde Frage: Folgendes Code-Segment...
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| type TAufzaehlung = (abc, def, ghi, jkl);
var Aufzaehlung: TAufzaehlung
[...] Aufzaehlung := def; IrgendeinInteger := Ord(Aufzaehlung); [...] |
... setzt ja IrgendeinInteger auf 1, sprich: Ord gibt mir die "Position" in einem Aufzählungstyp zurück.
Wie mache ich das denn umgekehrt? Wie kann ich "Aufzaehlung" auf zB den dritten Eintrag von TAufzaehlung setzen? (soll natürlich über die "3" funktionieren, nicht über das "jkl" :-) )
Danke!
AXMD - Fr 21.02.03 10:47
Hi,
setzen kannst du zur Laufzeit gar nichts (du kannst deinen Typ ja nicht einfach zur Laufzeit ändern) - wenn du das meinst.
AXMD
Tino - Fr 21.02.03 10:55
So:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var Aufzaehlung: TAufzaehlung; Idx: Integer; begin Aufzaehlung := ghi;
Idx := Ord (Aufzaehlung);
Aufzaehlung := TAufzaehlung (Idx); end; |
Sinnvoll wäre es auch die Variable Idx vor dem Typecast [also: TAufzaehlung (Idx) ] auf einen gültigen Wert zu überprüfen.
Gruß
TINO
Tower - Fr 21.02.03 10:55
Nein, den Typ will ich gar nicht anfassen. Ich möchte, dass nach sowas wie...
Quelltext
1:
| Aufzaehlung := IrgendeineFunktion(3); |
... Aufzaehlung=jkl ist.
smiegel - Fr 21.02.03 11:03
Hallo Tower,
das ist ja eigentlich der Sinn von Aufzählungen, dass ich Sie über den symbolischen Namen ansprechen kann.
Quelltext
1:
| Aufzaehlung:=TAufzaehlung(3); |
Achtuing: Zählung beginnt mit 0.
Tower - Fr 21.02.03 11:04
Mpf. So einfach... alles klar, danke!
@smiegel: Hast prinzipiell natürlich völlig recht. Ich brauche das in dem Fall aber, weil ich den Inhalt von ein paar Aufzählungsvariablen in der Registry speichern will. Und das geht so halt ganz gut...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!