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