Delphi注释+枚举集。不断表达?

时间:2015-11-21 16:22:20

标签: delphi compiler-errors annotations

我有一个我想用枚举集注释的类。

我定义了自定义属性类和所有内容。我想在资源文件的其他地方定义枚举集,并只使用此预定义的枚举集应用注释。但是,编译器抱怨它需要一个常量表达式(枚举集在const块中定义)

然后,如果我传入一个硬编码的枚举集,它就不会抱怨。

为什么不编译?如何在另一个资源文件中定义枚举集并在注释中使用它们,而不必在注释中对它们进行硬编码?

.blok1__navbar{	
	font-family: open-sans,sans-serif;
	width: 80%;
	margin:0 auto;
	padding: 0px;
}
.blok1__navbar li{
	list-style-type:none;
	display: inline-block;
	background-color: red;	
	padding: 10px 0px 10px 0px;	
}
.blok1__navbar li a{
	padding: 20px;
	text-decoration: none;
	color:#FFF;
}
.blok1__navbar > li > a::after{
	font-family: FontAwesome;
	display: inline-block;
	vertical-align: middle;
	content:"\f105";
	float:right;
	padding-right: 10px;
}

.blok1__navbar > li:hover ul {
    border-top-style: solid;
    border-top-width: 1px;
    left: 0;
    min-width: 200px;    
    opacity: 0;
    position: absolute;
    top: 100%;
    transform: translate3d(0px, 30px, 0px);
    transition: all 0.4s ease-out 0s;
    visibility: visible;
    z-index: 999;
}

2 个答案:

答案 0 :(得分:2)

根据语言规则,类型化常量不是constant expression,必须传递属性构造函数constant expressions

您已声明了一个类型化常量。改为使用常量表达式:

const enumSet1 = [val1, val2];

答案 1 :(得分:0)

发现错误。

我需要声明const

const enumSet1 = [val1, val2];

而不是

const enumSet1 : TEnumSet = [val1, val2]; 

为什么不编译呢?