Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Eigene Typen nach Integer casten? (https://www.delphipraxis.net/148134-eigene-typen-nach-integer-casten.html)

TheMiller 23. Feb 2010 12:41


Eigene Typen nach Integer casten?
 
Hallo,

ich habe eigene Typen wie den folgenden erstellt:

Delphi-Quellcode:
TPJUpdateEvents = (ueUserlist, ueAufgaben, ueTermine, ueNachrichten);
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.

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

s.h.a.r.k 23. Feb 2010 12:46

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.

Bernhard Geyer 23. Feb 2010 12:47

Re: Eigene Typen nach Integer casten?
 
Einfach mit Ord() den Ordinalwert bestimmen

TheMiller 23. Feb 2010 12:49

Re: Eigene Typen nach Integer casten?
 
Ja super. Die Funktion nutze ich so selten, dass ich garnicht mehr an sie gedacht habe.

Vielen Dank.

s.h.a.r.k 23. Feb 2010 12:49

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.

Bbommel 23. Feb 2010 12:59

Re: Eigene Typen nach Integer casten?
 
Delphi-Quellcode:
function UpdateEventsToString(UpdateEvent:TPJUpdateEvents):string;
begin
  Result:=GetEnumName(TypeInfo(TPJUpdateEvents), Integer(UpdateEvent));
end;
Autor unbekannt :) - hatte ich auch mal irgendwann hier gefunden.

Bis denn
Bommel

uligerhardt 23. Feb 2010 13:59

Re: Eigene Typen nach Integer casten?
 
Zitat:

Zitat von s.h.a.r.k
Ein kleiner Tipp vorweg, nimm doch ein case anstatt der if-Schleifen ;)

Klick :mrgreen:

TheMiller 24. Feb 2010 10:20

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

Bbommel 24. Feb 2010 10:24

Re: Eigene Typen nach Integer casten?
 
Zitat:

Zitat von DJ-SPM
Kann ich auch andersrum casten?

Klar, einfach
Delphi-Quellcode:
myUpdateEvent=TPJUpdateEvents(myIntegerValue);
nehmen.

Bis denn
Bommel

TheMiller 24. Feb 2010 10:25

Re: Eigene Typen nach Integer casten?
 
Perfekt. Vielen Dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz