Hallo,
Ich habe eine
Unit, welche viele Kontanten in dieser Form enthaelt:
Delphi-Quellcode:
const
{ Amp Drive }
CTRL_DRIVE: Byte = $0D; // $00 to $7E
{ Amp Toogle Controls (avail. depends on model!) }
CTRL_DRIVE_ONOFF: Byte = $1A; // $00 (off), $40 (on)
CTRL_DIST_ONOFF: Byte = $19; // $00 (off), $40 (on)
Nun will ich in einer anderen
Unit diese fuer Case-Abfragen nutzen:
Delphi-Quellcode:
case ControlID of
CTRL_DRIVE: DoSomething();
CTRL_EQ_BASS: DoSomething();
CTRL_EQ_MID: DoSomething();
CTRL_EQ_HIGH: DoSomething();
CTRL_CHANNEL_VOLUME: DoSomething();
end;
ControlID ist vom Typ Byte. Allerdings meckert jetzt Delphi rum, das eine Konstante fuer die Case-Faelle benoetigt wird ("[DCC Error] fmMain.pas(134): E2026 Constant expression expected"). Definiere ich die Konstanten ohne expliziten Typ z.B. mit
CTRL_DRIVE = $0D;
, so geht es. Allerdings erschliest sich mir nicht der Unterschied (sind ja beides Konstanten...).
Kann ich das ": Byte" ruhigen Gewissens weglassen und Delphi macht trotzdem ein Byte draus (wegen Bit-Operatoren)?