Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
Delphi 2009 Professional
|
Re: Wie testet man ob Enum in Teilgruppe davon?
3. Apr 2010, 18:24
Moin,
und wenn es nicht nur um Elemente geht:
Delphi-Quellcode:
type
TFixelType = (ftWall, ftBall, ftFinish,
ftRedBrush, ftGreenBrush, ftYellowBrush, ftBlueBrush,
ftAcid,
ftRedSwitch, ftGreenSwitch, ftYellowSwitch, ftBlueSwitch,
ftRedDoor, ftGreenDoor, ftYellowDoor, ftBlueDoor,
ftBumper, ftPad,
ftRedAccelerator, ftGreenAccelerator, ftYellowAccelerator, ftBlueAccelerator,
ftRedBeamstart, ftGreenBeamstart, ftYellowBeamstart, ftBlueBeamstart,
ftRedBeamtarget, ftGreenBeamtarget, ftYellowBeamtarget, ftBlueBeamtarget,
ftBlocker,
ftText);
const
DOOR_TYPES = [ftRedDoor, ftGreenDoor, ftYellowDoor, ftBlueDoor];
BRUSHES_TYPES = [ftRedBrush, ftGreenBrush, ftYellowBrush, ftBlueBrush];
Klar, dort könnte ich auch eine verschachtelte if-Abfrage machen, aber case ist da meiner Meinung nach schöner:
Delphi-Quellcode:
case TFixelType(AMainRec.Bytes[2] - 1) of
ftWall : ASprteBuf := TVirtualWall.Create;
ftRedBrush, ftGreenBrush, ftYellowBrush, ftBlueBrush : ASprteBuf := TVirtualBrush.Create;
// DOOR_TYPES : ASprteBuf := TVirtualDoor.Create;
ftRedDoor, ftGreenDoor, ftYellowDoor, ftBlueDoor : ASprteBuf := TVirtualDoor.Create;
else ASprteBuf := TVirtualFixel.Create;
end;
MfG
Fabian
Fabian Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
|