Enum vb 5.0

Hallo,

ich habe mir ein enum erstellt wie folgt

Public Enum Genre
pop=13
trance=14
End Enum

nun bekomme ich zum Beispiel eine Nummer 13 und nun möchte ich einer variablen x, den wert 13 aus dem enum zuweisen. Also das x=pop ist
Weiss jemand wie ich das realisieren kann?

LG Alex

Hi,
du kannst den Wert der Variablen (13) doch einfach zuweisen. Soviel ich weiss dient das ENUM nur der Übersichtlichkeit im Entwurf und enthält keine Überprüfungen o.ä. zur Laufzeit. Praktischer sind da Konstanten…

Ralph

Hallo Ralph danke der raschen Antwort, aber ich habe absolut keine Ahnung wie ich das anstellen soll, kannst du ein kleinen demo hier posten
ich würde es so machen…

Public Function GetInfo(nr as byte) as string
on error resume next
dim x as string
GetInfo= ?
end sub

als Nr wird die zum Bsp. 13 uebergeben und nun soll aus dem Enum der eintrag mit der nummer 13 an GetInfo uebergeben werden. Nur was schreibe ich da anstelle des ? hin?

LG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hi

dim x as Genre
dim y as integer

x = Genre.pop
y = Genre.pop

geht auf beide arten.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,
jetzt weiss ich auch was du willst. Dafür sind Konstanten und ENUM nicht geeignet. Was du brauchst ist ein konstantes Array aus Strings, das an Stelle 13 dann den Text von 13 hat und wo du dann mit StrArr(13) auf den Text zugreifen kannst. Das ist in VB nicht möglich :smile:. Also kannst du das z.B. mit einem normalen Array machen, welches du bei Programmstart initialisierst:

dim strArr(13 to 15) as string
sub init()
 strArr(13)="Text13"
 strArr(14)="Text14" 
 strArr(15)="Text15"

 'Benutzung
 zuweisevariable = strArr(nr)

Ralph

Hallo Ralph,

danke für deinen Rat. Ich habe das alles nun in ein Array gemacht.
Es geht hierbei um knapp 150 Werte!
Ich denke mal das dies rel. viel Speicher nutzen wird oder?
Ich bin nun am ueberlegen eine Temporaere Form zu erstellen (namens tmp) darauf eine Combo box zu setzen und alle daten da einzutragen.
Dann kann ich ja mit tmp.Combox1.list(13) auf den 13 Eintrag zugreifen.
Was ist denn deiner meinung nach das beste?

LG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]