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;
...