Hallo an Alle,
ich habe hier einen Aufzählungstyp monat = (Januar, ... Dezember).
In einer Stringvariablen habe ich den Namen eines Monats, z.B. Februar. Nun würde ich gerne mit imonat := ord(smonat) + 1; die Monatszahl ermitteln. Diese Vorgehensweise sagt aber der Compiler wäre falsch.
Wie muss es richtig lauten?
Danke für Eure Hilfe und Tipps.
Bis dann ...
MfG
Günter
Zugriff auf Aufzählungstyp mittels Variabler
-
- Beiträge: 87
- Registriert: Sa 19. Jan 2008, 17:21
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Rheinberg
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Geht vielleicht inc (smonat) ?
smonat := monat(ord(smonat)+1);
In Delphi kann man mit RTTI die Namen der Ausprägungen eines Aufzählungstyps in einen String bekommen, ohne zusätzlich ein Array von Strings anlegen zu müssen. Ich vermute in Lazarus geht das auch.
-Michael
smonat := monat(ord(smonat)+1);
In Delphi kann man mit RTTI die Namen der Ausprägungen eines Aufzählungstyps in einen String bekommen, ohne zusätzlich ein Array von Strings anlegen zu müssen. Ich vermute in Lazarus geht das auch.
-Michael
Zuletzt geändert von mschnell am Mo 4. Feb 2008, 11:54, insgesamt 1-mal geändert.
-
- Beiträge: 87
- Registriert: Sa 19. Jan 2008, 17:21
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Rheinberg
Hallo an Alle,
danke ersteinmal an alle, die mir auf meine Frage geantwortet haben. Die Lösung des Problems lag in der folgenden Anweisung:
iMonat := GetEnumValue(TypeInfo(Monat),sMonate) + 1;
BTW. welches Delphi-Buch hilft mir am Besten beim Erlernen von Lazarus?
Danke für Eure Hilfe und Tipps.
Bis dann ...
MfG
Günter
danke ersteinmal an alle, die mir auf meine Frage geantwortet haben. Die Lösung des Problems lag in der folgenden Anweisung:
iMonat := GetEnumValue(TypeInfo(Monat),sMonate) + 1;
BTW. welches Delphi-Buch hilft mir am Besten beim Erlernen von Lazarus?
Danke für Eure Hilfe und Tipps.
Bis dann ...
MfG
Günter