Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi enum-Typ und array (https://www.delphipraxis.net/192679-enum-typ-und-array.html)

p80286 10. Mai 2017 11:35

enum-Typ und array
 
hallo zusammen,
ich steh mir gerade selbst auf den Füßen.
Für einen Enum-Typen möchte ich auch gleich den Klartext zur Hand haben:
Delphi-Quellcode:
type
 tEVType = (EVUndef,EVAusz,EVPausch,EVProduct);

const
  cEVType:array [min(tEVType)..max(tEVType)]=('EVundef','EVAusz','EVPausch','EVProduct');

var
  myev : tEVType;

....

 writeln(cEVTYPE[myEV]);
.....
Geht das überhaupt?

Gruß
K-H

Ghostwalker 10. Mai 2017 11:43

AW: enum-Typ und array
 
jap:

Delphi-Quellcode:
  const cEvType : array[TevType] of String = ('EVundef','EVAusz','EVPausch','EVProduct');

p80286 10. Mai 2017 11:51

AW: enum-Typ und array
 
Danke!

Gruß
K-H

SneakyBagels 10. Mai 2017 11:55

AW: enum-Typ und array
 
Zitat:

Für einen Enum-Typen möchte ich auch gleich den Klartext zur Hand haben:
Wieso wandelst du den Enum nicht in einen String um? Das vermeidet doppelte "Buchführung"

Ghostwalker 10. Mai 2017 12:09

AW: enum-Typ und array
 
Weil man den String im Regelfall nur zur Ausgabe hin benötigt. Wenn man das ganze z.B. in einer DB speichern möchte, reicht ein Byte (oder Integer)-Feld.

Alles eine Frage der Effizients :)

SneakyBagels 10. Mai 2017 12:30

AW: enum-Typ und array
 
Zitat:

Wenn man das ganze z.B. in einer DB speichern möchte, reicht ein Byte (oder Integer)-Feld.
Nirgendwo steht aber, dass er in eine Datenbank schreiben möchte.

Ghostwalker 10. Mai 2017 12:38

AW: enum-Typ und array
 
Richtig, das war aber auch nur ein Beispiel.

Es ging aber auch nicht darum den Enum zu elemenieren.

himitsu 10. Mai 2017 12:48

AW: enum-Typ und array
 
Und warum nicht Delphi das in einen String umwandeln lassen?

Delphi-Referenz durchsuchenGetEnumName / Delphi-Referenz durchsuchenGetEnumValue (TypInfo)
TRttiEnumerationType.GetName / TRttiEnumerationType.GetValue (RTTI, allerding ist das in XE private, aber klang so, als wenn sich das geändert hat ... ist eh eine saudumme Idee und ich hab sowas schon seit Jahren für mich selbst gebaut ... die ollen Nachmacher :stupid:)

Solange keiner auf die doofe Idee kommt und den Enum manuell indiziert, gibt es auch die nötigen RTTI-Infos.
Also nicht bei
Delphi-Quellcode:
type tEVType = (EVUndef=123,EVAusz,EVPausch,EVProduct);
.

Ghostwalker 10. Mai 2017 12:55

AW: enum-Typ und array
 
Stimmt...is sogar einfacher :)

p80286 10. Mai 2017 17:45

AW: enum-Typ und array
 
Gute Idee!
Da ich aber an z.B "EVAusZ" noch weitere Strings hängen habe, u.a. SQL-Abfragen, ist die erstgenannte Lösung genau das richtige.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:23 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