Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Integer-Aufzählungstyp deklarieren

  Alt 24. Apr 2007, 13:43
Hallo,

noch ein Vorschlag:

Delphi-Quellcode:
// uses TypInfo

type
  TMyType = (vNAN, v1, v5, v48, v1337, v4711);

function IntToMyType (aValue: Integer): TMyType;
begin
  aValue := GetEnumValue(TypeInfo(TMyType), 'v' + IntToStr(aValue));
  if (aValue >= 0) then
    Result := TMyType(aValue)
  else
    Result := vNAN;
end;

function MyTypeToInt (aValue: TMyType): Integer;
var
  s : string;
begin
  s := GetEnumName(TypeInfo(TMyType), Ord(aValue));
  Result := StrToIntDef(Copy(s, 2, MaxInt), -1);
end;

// Anwendung

var
  myValue : TMyType;
  intValue : Integer;
begin
  myValue := IntToMyType(48);
  myValue := IntToMyType(100);

  intValue := MyTypeToInt(v1337);
  intValue := MyTypeToInt(vNAN);
end;
Es sollte aber klar sein, daß solche Operationen eine Laufzeitverschlechterung mit sich bringen.

Gruß Hawkeye
  Mit Zitat antworten Zitat