德尔福"案例"表达式期望不变

时间:2018-01-22 20:05:43

标签: delphi case-statement

我将用C编写的通讯库移植到Delphi,后者使用 #define 和" 切换案例"其中一个功能。

我使用" const "翻译了它们。和" 案例"在德尔福。

但Delphi编译器抱怨说" [dcc32错误] Comm.Meter.pas(76): E2026期望的常量表达式"。

只要我看到,就没有任何非常数。为什么是这样?什么是正确的解决方案?

Const
  COM_SOH: Byte = 1;    // Start of Header
  COM_STX: Byte = 2;    // Start of Text
  COM_ETX: Byte = 3;    // End of Text
  COM_ACK: Byte = 6;    // Acknowledge
  COM_NACK: Byte = 21;  // Not acknowledge
  COM_CR: Byte = 13;
  COM_LF: Byte = 10;
  COM_DIV: Byte = 47;

function test_case(const ch: byte): Int32;
begin
  Result := 0;

  case ch of
    COM_DIV:
    begin
      Result := ch + 1;
    end;

    COM_ACK:
    begin
      Result := ch + 2;
    end;

    COM_NACK:
    begin
      Result := ch + 3;
    end;

    COM_STX:
    begin
      Result := ch + 4;
    end;
  end;
end;

0 个答案:

没有答案