Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Enumerated Values von einem Typ auslesen?
TmpDir - Mi 22.03.06 21:57
Titel: Enumerated Values von einem Typ auslesen?
Hi,
ich wollte gerne in einem Modul alle möglichen Werte eines Enumerated Typs in einer Listbox darstellen. (So wie beim Designtime Property Editor die Dropdown Liste).
Wie kann man also die Standard Property Editoren dafür zweckentfremden?
mfg
BenBE - Mi 22.03.06 22:28
Dazu brauchst Du die Typinfo dieses Enum-Typs.
Ein Beispiel, wie das geht, gibt's in der
OIncProcs.pas [
http://viewcvs.omorphia.de/omorphia/library/source/OIncProcs.pas] von
Omorphia [
http://www.omorphia.de/]:
Delphi-Quelltext
1:
| Function EnumValueToStr(AValue: Integer; ATypeInfo: PTypeInfo): String; |
Aufgerufen wird die Funktion so hier:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var S: String; E: SomeFooEnum; begin S := EnumValueToStr(Ord(E), TypeInfo(SomeFooEnum)); end; |
Wie das für alle Elemente des Typs geht, kannst Du Dir sicherlich aus besagtem Source entnehmen.
MfG,
BenBE.
TmpDir - Mi 22.03.06 23:16
Erstmal Danke für die schnelle Antwort.
Kann es sein das bei einer Delphi 6 Pro Version die DCU/PAS Datei "TypeInfo" nicht dabei ist???
Ich kann nämlich in meiner uses clause typeinfo nicht deklarieren. Und eine entsprechende Datei ist nicht vorhanden.
mfg
BenBE - Mi 22.03.06 23:29
Versuch's mal mit der Unit TypInfo (ohne das E).
Das war in der Unit kein Schreibfehler, sondern ist so ;-) Hängt mit Namenskonflikten zusammen, weil TypeInfo eine Funktion der Compiler-Magic ist. Der Source sollte unter D6 (mit unseren Units) fehlerfrei laufen; wenn nicht, einfach bescheidgeben.
TmpDir - Do 23.03.06 00:16
do :autsch: until :think:
jetzt geht das.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!