Einzelnen Beitrag anzeigen

Knutifrutti

Registriert seit: 24. Nov 2008
19 Beiträge
 
#1

Enum mit DWORDs ??

  Alt 18. Okt 2017, 09:38
Delphi-Version: 2007
Hi Leute,
ich möchte gerne einen ENUM mit sehr großen Konstanten definieren um die Lesbarkeit und Debug-Barkeit des Programmes zu verbessern.

Code:
type
  EMsgSig =
  (
    cMESSAGE_SIG_IR_Command_X64_Y32_Analog = $1E65343F, // analog IR Beams
    cMESSAGE_SIG_IR_Command_X64_Y32_Digital = $B672DFE5, // digital IR Beams
    cMESSAGE_SIG_FLOAT_Command             = $4D3D7EA3, // A 32-bit floating point value
    cMESSAGE_SIG_CLIM_Command              = $6991AA0E, // Klima-Sensoren
    cMESSAGE_SIG_CLIM_Command2              = $DEA8CA6C, // Klima-Sensoren
    cMESSAGE_SIG_LOAD_Command              = $55FBCF08, // LoadCell-Sensoren
    cMESSAGE_SIG_LOAD_Command2              = $c1e97ab7, // LoadCell-Sensoren mit Temperatur
    cMESSAGE_SIG_ZERO                      = $00000000  // cMESSAGE_TYPE_RPC_USB2CAN
  );
Leider bekomme ich bei Literalen größer $7FFFFFFF einen Compilerfehler, dass eine Konstante erwartet wird. (zweiter enum-Wert: $B672DFE5)
Ich vermute, das liegt daran, dass maximal Integer-Werte aber nicht Cardinal verwendet werden kann.
{$MINENUMSIZE 4} ... EnumDef ... {$MINENUMSIZE 1} hilft hier auch nicht weiter.

Gibts hier eine Lösung?
Ich würde gerne
1. beim Debuggen im Klartext sehen wollen, was da für eine Message angeflogen kommt und auch
2. vom Compiler gewarnt werden, wenn ich in einem Case-of einen Zweig vergessen habe.

Knulli
  Mit Zitat antworten Zitat