AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Typen nach Integer casten?

Ein Thema von TheMiller · begonnen am 23. Feb 2010 · letzter Beitrag vom 24. Feb 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Eigene Typen nach Integer casten?

  Alt 23. Feb 2010, 12:41
Hallo,

ich habe eigene Typen wie den folgenden erstellt:

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
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: Eigene Typen nach Integer casten?

  Alt 23. Feb 2010, 12:46
Ein kleiner Tipp vorweg, nimm doch ein case anstatt der if-Schleifen

Ansonsten kannst du wunderbar mit der Ord()-Funktion arbeiten.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Eigene Typen nach Integer casten?

  Alt 23. Feb 2010, 12:47
Einfach mit Ord() den Ordinalwert bestimmen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#4

Re: Eigene Typen nach Integer casten?

  Alt 23. Feb 2010, 12:49
Ja super. Die Funktion nutze ich so selten, dass ich garnicht mehr an sie gedacht habe.

Vielen Dank.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#5

Re: Eigene Typen nach Integer casten?

  Alt 23. Feb 2010, 12:49
Schöner finde ich aber die Methode, die aus dem Wert ueUserlist einen String macht, nur finde ich dieser gerade nicht Somit werden die Werte lesbarer abgespeichert, wie ich finde.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
652 Beiträge
 
Delphi 12 Athens
 
#6

Re: Eigene Typen nach Integer casten?

  Alt 23. Feb 2010, 12:59
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
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Eigene Typen nach Integer casten?

  Alt 23. Feb 2010, 13:59
Zitat von s.h.a.r.k:
Ein kleiner Tipp vorweg, nimm doch ein case anstatt der if-Schleifen
Klick
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#8

Re: Eigene Typen nach Integer casten?

  Alt 24. Feb 2010, 10:20
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
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
652 Beiträge
 
Delphi 12 Athens
 
#9

Re: Eigene Typen nach Integer casten?

  Alt 24. Feb 2010, 10:24
Zitat von DJ-SPM:
Kann ich auch andersrum casten?
Klar, einfach myUpdateEvent=TPJUpdateEvents(myIntegerValue); nehmen.

Bis denn
Bommel
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#10

Re: Eigene Typen nach Integer casten?

  Alt 24. Feb 2010, 10:25
Perfekt. Vielen Dank
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:14 Uhr.
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