AGB  ·  Datenschutz  ·  Impressum  







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

Typ Werte Als String?

Ein Thema von Kedariodakon · begonnen am 14. Dez 2004 · letzter Beitrag vom 14. Dez 2004
Antwort Antwort
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#1

Typ Werte Als String?

  Alt 14. Dez 2004, 14:57
Wenn ich ein Typen habe z.B.:
Type   TAuto = ( aBMW, aOPEL, aAUDI, aFORD, aNISSAN {...} ); nu will ich gern den TAuto-Typ-Wert als String haben!
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?

Bye
Christian
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#2

Re: Typ Werte Als String?

  Alt 14. Dez 2004, 15:01
imho nein
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: Typ Werte Als String?

  Alt 14. Dez 2004, 15:01
+Mit der Ausgabe von eigenen Typen siehts schlecht aus.
Du machst am besten eine Funktion, die dir das ganze "übersetzt".function AutoToStr (Auto: TAuto): String;
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Typ Werte Als String?

  Alt 14. Dez 2004, 15:01
Gibt's imho nicht. Am besten schreibt man sich für sowas dann eine kleine Funktion der Art:
Delphi-Quellcode:
function TAutoToStr(v: TAuto): String;
begin
  case v of
    aBMW: result := 'aBMW';
    aOPEL: ... ...
  end;
end;
\\edit: Ui! Später, aber ausführlicher
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: Typ Werte Als String?

  Alt 14. Dez 2004, 15:05
Hallo,

oder Du nimmst ein Array of String in der Form:
Delphi-Quellcode:
  
const
  TAutoStr:array[TAuto] of String=
    ('aBMW', 'aOPEL', 'aAUDI', 'aFORD', 'aNISSAN', {...} );
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#6

Re: Typ Werte Als String?

  Alt 14. Dez 2004, 15:23
Zitat von Kedariodakon:
nu will ich gern den TAuto-Typ-Wert als String haben!
z.B. wenn TAuto = aBMW möchte ich aBMW als String zurückhaben...
Geht das irgendwie ohne eine lange Case-Funktion zu benutzen
Also indirekt über einen kleinen Umweg geht es. Stichwort: RTTI

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;

...
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Typ Werte Als String?

  Alt 14. Dez 2004, 15:23
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

OK danke erstmal...


Edit: @Sprint danke genausowas suchte ich

Edit: Geht

bye
Christian
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#8

Re: Typ Werte Als String?

  Alt 14. Dez 2004, 16:09
Kennt denn keiner die RTTI (Run Time Typ Information).

Einfach Unit TypInfo einbinden (hoffe die gibts in allen Delphi Versionen).

str:=GetEnumName(TypeInfo(TAuto),Ord(Value)); [edit]Oh Sprint kennt die ja doch [/edit]
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:15 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