相关疑难解决方法(0)

Delphi:所有常量都是常数,但有些常数比其他常量更常量?

考虑:

const 
   clHotlight: TColor = $00FF9933;
   clLink = clHotLight; //alias of clHotlight

[Error] file.pas: Constant expression expected
Run Code Online (Sandbox Code Playgroud)

和替代措辞有效:

const 
   clHotlight = TColor($00FF9933);
   clLink = clHotLight; //alias of clHotlight
Run Code Online (Sandbox Code Playgroud)

说明.


然后考虑:

const 
   AdministratorGUID: TGUID = '{DE44EEA0-6712-11D4-ADD4-0006295717DA}';
   SuperuserGUID = AdministratorGUID; //alias of AdministratorGUID

[Error] file.pas: Constant expression expected
Run Code Online (Sandbox Code Playgroud)

并修复.

编辑:const在声明之前添加关键字; 有人不相信他们是常设.

delphi compiler-errors constants delphi-5 compiler-constants

22
推荐指数
3
解决办法
6678
查看次数

在Delphi 7中,为什么我可以为const赋值?

我将一些Delphi代码从一个项目复制到另一个项目,并发现它不能在新项目中编译,尽管它在旧项目中编译.代码看起来像这样:

procedure TForm1.CalculateGP(..)
const
   Price : money = 0;
begin
   ...
   Price := 1.0;
   ...
end;
Run Code Online (Sandbox Code Playgroud)

所以在新项目中,Delphi抱怨"左侧无法分配" - 可以理解!但是这段代码在旧项目中编译.所以我的问题是,为什么?是否有编译器开关允许重新分配consts?这怎么样?我认为在编译时它们的值被替换了?

delphi constants

21
推荐指数
3
解决办法
7486
查看次数