![]() |
Eigene Typen nach Integer casten?
Hallo,
ich habe eigene Typen wie den folgenden erstellt:
Delphi-Quellcode:
Ich habe i-wo gelesen, dass Delphi bzw. der Compiler dahergeht und der Reihe nach jedem Wert eines Typen einen Integer-Wert beginnend bei 0 zuordnet. An diese Wert würde ich gerne durch einen Cast rankommen.
TPJUpdateEvents = (ueUserlist, ueAufgaben, ueTermine, ueNachrichten);
Mein Ziel ist es, in der Datenbank den Integer-Wert des Typen-Wertes zu speichern und nur im Quelltext die TypenNamen zu nutzen. In der DB sollte für "ueAufgaben" also eine 1 stehen. Momentan prüfe ich noch mit if-Abfragen und übersetze quasi den Typ in den entsprechenden Wert - das ist nicht gerade eine Vereinfachung. Danke im Voraus |
Re: Eigene Typen nach Integer casten?
Ein kleiner Tipp vorweg, nimm doch ein case anstatt der if-Schleifen ;)
Ansonsten kannst du wunderbar mit der Ord()-Funktion arbeiten. |
Re: Eigene Typen nach Integer casten?
Einfach mit Ord() den Ordinalwert bestimmen
|
Re: Eigene Typen nach Integer casten?
Ja super. Die Funktion nutze ich so selten, dass ich garnicht mehr an sie gedacht habe.
Vielen Dank. |
Re: Eigene Typen nach Integer casten?
Schöner finde ich aber die Methode, die aus dem Wert ueUserlist einen String macht, nur finde ich dieser gerade nicht :wall: Somit werden die Werte lesbarer abgespeichert, wie ich finde.
|
Re: Eigene Typen nach Integer casten?
Delphi-Quellcode:
Autor unbekannt :) - hatte ich auch mal irgendwann hier gefunden.
function UpdateEventsToString(UpdateEvent:TPJUpdateEvents):string;
begin Result:=GetEnumName(TypeInfo(TPJUpdateEvents), Integer(UpdateEvent)); end; Bis denn Bommel |
Re: Eigene Typen nach Integer casten?
Zitat:
![]() |
Re: Eigene Typen nach Integer casten?
Vielen Dank nochmals für die Tipps.
Kann ich auch andersrum casten? Ich bekomme aus der DB den Wert 1 und möchte jetzt das entsprechende "TPJUpdateEvent" bekommen. Gibt's da auch eine Möglichkeit? Danke |
Re: Eigene Typen nach Integer casten?
Zitat:
Delphi-Quellcode:
nehmen.
myUpdateEvent=TPJUpdateEvents(myIntegerValue);
Bis denn Bommel |
Re: Eigene Typen nach Integer casten?
Perfekt. Vielen Dank
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz