Zitat von
generic:
ord ist noch einfacher.
ord gibt den index eines eintrages aus eine liste zurück.
das kann z.b. der
ascii code sein aus der
ascii liste.
es kann aber auch ein index aus einer einfachen aufzählung sein.
bist du dir sicher?
Dann müsste folgendes Beispiel eigentlich 3 ausgeben (weil me50 an dritter Stelle steht). Tatsächlich wird aber 50 ausgegeben weil nicht der Index von ord zurück gegeben wird sondern die Bytes des übergebenen Wertes werden als ordinaler Wert interpretiert. Folglich ein ganz normaler cast.
Wenn du dir ansiehst was der Compiler generiert, wirst du sogar feststellen das ord(wert) und byte(wert) das gleiche ergibt (eben weil es nur ein einfacher cast ist).
Delphi-Quellcode:
type
TMyEnum = (me0, me1, me2, me50 = 50, me51);
[...]
showmessage(inttostr(ord(me50)));