Einzelnen Beitrag anzeigen

Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#1

Unterschiede zwischen Konstanten-Deklaration?

  Alt 17. Jun 2010, 21:38
Delphi-Version: 2010
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)?
Manuel
  Mit Zitat antworten Zitat