使用const的Delphi ShortInt帮助器ToString

时间:2017-01-31 09:11:08

标签: delphi const helper

我在一个单独的单元中有一些常量,如果type为ShortInt(< 128),我就不能对这些常量执行.ToString。

示例: 创建单位并添加:

const abc = 127;

创建一个TForm并在FormShow中执行:

Edit1.Text := abc.tostring;

你知道为什么它没有用吗? 输入所需的记录,对象或类 ..

如果常数在同一个单元中,则有效。

1 个答案:

答案 0 :(得分:4)

我可以使用以下最小例子重现这个

<强> Program1.dpr

program Project1;

{$APPTYPE CONSOLE}

uses
  System.SysUtils,
  Unit1 in 'Unit1.pas';

begin
  Writeln(abc.ToString);
end.

<强> Unit1.pas

unit Unit1;

interface

const
  abc = 127;

implementation

end.

这是一个明确的编译器错误。你可以用这样一个不优雅的类型提示来解决这个问题:

const
  abc = Shortint(127);

这告诉我,当没有类型提示时,编译器会将127看作Shortint以外的其他内容。我不太确定是什么,因为我无法在编译器中看到。

请向Embarcadero提交错误报告。