![]() |
Typ Werte Als String?
Wenn ich ein Typen habe z.B.:
Delphi-Quellcode:
nu will ich gern den TAuto-Typ-Wert als String haben!
Type TAuto = ( aBMW, aOPEL, aAUDI, aFORD, aNISSAN {...} );
z.B. wenn TAuto = aBMW möchte ich aBMW als String zurückhaben... Geht das irgendwie ohne eine lange Case-Funktion zu benutzen oder ein StringArray vom Typ TAuto oder sonst was wozu ich alle TAuto-Werte nochmal auflisten muß? Ganz einfach als Funktion vielleicht? :gruebel: Bye |
Re: Typ Werte Als String?
imho nein
|
Re: Typ Werte Als String?
+Mit der Ausgabe von eigenen Typen siehts schlecht aus.
Du machst am besten eine Funktion, die dir das ganze "übersetzt".
Delphi-Quellcode:
function AutoToStr (Auto: TAuto): String;
|
Re: Typ Werte Als String?
Gibt's imho nicht. Am besten schreibt man sich für sowas dann eine kleine Funktion der Art:
Delphi-Quellcode:
\\edit: Ui! Später, aber ausführlicher :mrgreen:
function TAutoToStr(v: TAuto): String;
begin case v of aBMW: result := 'aBMW'; aOPEL: ... ... end; end; |
Re: Typ Werte Als String?
Hallo,
oder Du nimmst ein Array of String in der Form:
Delphi-Quellcode:
const TAutoStr:array[TAuto] of String= ('aBMW', 'aOPEL', 'aAUDI', 'aFORD', 'aNISSAN', {...} ); |
Re: Typ Werte Als String?
Zitat:
Delphi-Quellcode:
...
uses TypInfo; ... type TAuto = (Opel, BMW, VW, Audi, Nissan); TAutos = Set of TAuto; ... function FabrikatToStr(Autos: TAutos): String; var I: TAuto; begin Result := ''; for I := Low(TAuto) to High(TAuto) do begin if I in Autos then begin if Result <> '' then Result := Result + ', '; Result := Result + GetEnumName(TypeInfo(TAuto), Ord(I)); end; end; end; ... procedure TForm1.Button1Click(Sender: TObject); var Auto: TAutos; begin Auto := [Nissan]; ShowMessage(FabrikatToStr(Auto)); end; ... |
Re: Typ Werte Als String?
habe das in der Arrayform wie Gollum meinte, aber bei vielen Werten wird das schnell unübersichtlich und gerade wenn man dann mal mittendrin was ändern will...
Da wär eine Case schon schöner, aber da muß man ja am Anfang soviel :coder: :zwinker: OK danke erstmal... Edit: @Sprint :thumb: danke genausowas suchte ich :P Edit: Geht :thumb: bye |
Re: Typ Werte Als String?
Kennt denn keiner die RTTI (Run Time Typ Information).
Einfach Unit TypInfo einbinden (hoffe die gibts in allen Delphi Versionen).
Delphi-Quellcode:
[edit]Oh Sprint kennt die ja doch :roll: [/edit]
str:=GetEnumName(TypeInfo(TAuto),Ord(Value));
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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